webForumDet fria alternativet
Logga in / Bli medlem

Fel på sql fråga?

Databaser & SQL

12 svar · 276 visningar · startad av Rinaldo

Medlem sedan mars 20014 214 inlägg
Frågan#1

Är det någoting fel på denna fråga?

SELECT Top 1 * FROM tblTopics INNER JOIN tblReplies Order by message_date

Ska alltså hämta från två tabeller...

Medlem sedan juni 200032 967 inlägg
#2

Ja, du har inte specificerat vilket fält i respektive tabell som skall användas i joinen.

Mvh,

Medlem sedan mars 20014 214 inlägg
#3

hmm... Hur gör jag det?

Jag vill hämta message_date från båda tabellerna och och samtidigt ha en order by message date så jag bara väljer en post från de båda tabellerna... Den som är nyast...

Medlem sedan juni 200032 967 inlägg
#4

Vilket fält i den ena tabellen ska kopplas mot vilket fält i den andra? Om du ska joina tabellerna, så måste du ha något att joina på.

Mvh,

Medlem sedan juni 200032 967 inlägg
#5

Jag flyttar över denna tråd till rätt forum, dvs SQL-forumet.

Mvh,

Medlem sedan dec. 200012 464 inlägg
#6

Din tabelldesign ser konstig ut. Varför behöver du blanda in topic i sammanhanget?

Jag skulle lägga alla inlägg i en tabell, även det första i varje topic.

Medlem sedan mars 20014 214 inlägg
#7

Alltså.... Detta är ett forum. Jag vill hämta den senaste posten gjord i forumet oavsett om det är en tråd(i tblTopics) eller ett svar(i tblReplies).

Jag ska ju bara hämta en av dessa poster alltså måste jag jämföra i vilken av det nya tabellerna, den nyaste posten finns, och hämta den.

Hur gör jag då?

Medlem sedan dec. 200012 464 inlägg
#8

Du får göra en union.

select top 1 * from (
select userid,mesageDate from tbl_replies
union
select userid,mesageDate from tbl_topic)
order by messageDate desc

Det viktiga är att du har samma antal kolumner och samma typer i de båda select-frågorna som du gör union på.

Medlem sedan mars 20014 214 inlägg
#9

sqlLastPost="select top 1 * from (
select author_ID,message_date from tblReplies
union
select author_ID,message_date from tblTopics)
order by message_datee desc"
rsLastPost.Open sqlLastPost, Conn
Set rsLastPost = Server.CreateObject("adodb.recordset")

"&rsLastPost("message_date")&"

Oavslutad strängkonsonant blir det nu... :q

Medlem sedan mars 20014 214 inlägg
#10

Löste med larsGs fråga... hade råkat ta bort ett " i slutet, tack

Medlem sedan mars 20014 214 inlägg
#11

En sak till... var ska jag sätta where om jag vill bestämma vilka poster jag vill hämta?

		sqlLastPost="select top 1 \* from(select message_date, author_ID from tblReplies union select message_date, author_ID from tblTopics) where forum_ID = '"&strForumID&"' order by message_date desc"?
Medlem sedan dec. 200012 464 inlägg
#12

Du kan lägga den där, men då måste du ta med forum_id i de båda select-satserna i unionen annars så får du lägga ditt where-villkoren i varje gren av unionen.

Medlem sedan mars 20014 214 inlägg
#13

tackar :)

266 ms totalt · 4 externa anrop · v20260731065814-full.0583408b
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)