webForumDet fria alternativet
Logga in / Bli medlem

2 stycken join

Databaser & SQL

6 svar · 361 visningar · startad av Thompa__85

Medlem sedan aug. 2002600 inlägg
Trådstart#1

Hejsan wf!

Jag har lite problem med min join..
Så här är fallet: Jag bygger ett forum.
Jag har 2 tabeller, en med huvudrum och en med underrum.
För att få alla underum under rätt huvudrum va inga problem med hjälp av join.
Men, sen vill jag ha så att man ska se om de dykt upp nya inlägg sen man sist va inne och kollade. Så jag skapade en tabell med underrummets ID nummer, samt användar ID och datum.

Men, när jag lägger in det i min sql-sats så får den för sig att endast hämta forumrum som finns i bevakningstabellen:

min kod:

		SQL = "SELECT f.Board_id, f.strTitel, r.BoardU_id, r.Board_id, r.strTitel, b.BoardU_id, b.intUser, b.strDatum " _
		& "FROM boardrum f join boardurum r on f.Board_id = r.Board_id join forum_bevakning b on b.BoardU_id = r.BoardU_id  " _
		& "WHERE f.Board_id = r.Board_id " _
	    & "ORDER BY f.strTitel"

Någon som har någon idé hur jag ska göra?

Medlem sedan dec. 19996 721 inlägg
#2

Du måste göra en "LEFT OUTER JOIN" mot bevakningstabellen, och dessutom lägga med ett vilkor för userid, som jag misstänker att du har i Session

Medlem sedan feb. 200112 078 inlägg
#3

Flyttas från ASP.

Medlem sedan aug. 2002600 inlägg
#4

emission skrev:

Du måste göra en "LEFT OUTER JOIN" mot bevakningstabellen, och dessutom lägga med ett vilkor för userid, som jag misstänker att du har i Session

Tror jag fick till det, ska kolla lite :) Tack!

Medlem sedan dec. 19996 721 inlägg
#5
SQL = "SELECT f.Board_id, f.strTitel, r.BoardU_id, r.Board_id, r.strTitel, b.BoardU_id, b.intUser, b.strDatum " & _
	"FROM boardrum f join boardurum r on f.Board_id = r.Board_id left outer join forum_bevakning b on b.BoardU_id = r.BoardU_id  and b.intUser=" & Session("UserID") & _
"WHERE f.Board_id = r.Board_id " & _
"ORDER BY f.strTitel"
Medlem sedan aug. 2002600 inlägg
#6

emission skrev:

SQL = "SELECT f.Board_id, f.strTitel, r.BoardU_id, r.Board_id, r.strTitel, b.BoardU_id, b.intUser, b.strDatum " & _
	"FROM boardrum f join boardurum r on f.Board_id = r.Board_id left outer join forum_bevakning b on b.BoardU_id = r.BoardU_id  and b.intUser=" & Session("UserID") & _
"WHERE f.Board_id = r.Board_id " & _
"ORDER BY f.strTitel"

Fungerade bra!
Men nu är jag jobbig igen ;) jag vill ha in en tabell till och gjorde så här:

	SQL = "SELECT f.Board_id, f.strTitel, r.BoardU_id, r.Board_id, r.strTitel, b.BoardU_id, b.intUser, b.strDatum, m.strSenast, m.ref_id " _
		& "FROM boardrum f join boardurum r on f.Board_id = r.Board_id left outer join boardmessege m on m.ref_id = r.BoardU_id left outer join forum_bevakning b on b.BoardU_id = r.BoardU_id and b.intUser=" & Session("id") &" " _

Men får inte ut strSenast :/

Medlem sedan dec. 19996 721 inlägg
#7

Om du inte får ut strSenast så beror på att det inte inte finns någon rad i boardmessage som matchar, eller så är kolumnen tom. Själva join-satsen ser helt ok ut.

261 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)