Problem med join

Databaser & SQL

2 svar · 298 visningar · startad av Thompa__85

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

Hej!

Har ett enklare "vännersystem" som jag har lite problem med:

Databas:
VannerUserID, VannerToUserID

Exempel:
VannerUserID = 1 och VannerToUserID = 2

Sedan när jag ska lista vänner kör jag denna sql:

	SQL = "SELECT v.vannerID, v.vannerUserID, v.vannerToUserID, v.vannerDate, " _
		& "m.member_id, m.strPic, m.strU, m.strOrt, m.strInlogg, m.strFnamn, m.strKon, m.intYear " _
		& "FROM vanner v join members m on m.member_id = v.vannerToUserID " _
		& "WHERE v.vannerUserID = "& userID &" Order by m.strInlogg DESC LIMIT 150"
	set RS = Connect.Execute(SQL)

Vilket fungerar perfekt.
Men, nu vill jag vända på steken och göra en lista där man listor de medlemmar som lagt till MIG som vän.
Dvs där VannerToUserID = userID.

Då kan jag göra så här:

	SQL = "SELECT v.vannerID, v.vannerUserID, v.vannerToUserID, v.vannerDate, " _
		& "m.member_id, m.strPic, m.strU, m.strOrt, m.strInlogg, m.strFnamn, m.strKon, m.intYear " _
		& "FROM vanner v join members m on m.member_id = v.vannerUserID " _
		& "WHERE v.vannerToUserID = "& userID &"  Order by m.strInlogg DESC LIMIT 150"

Men då skriver den även ut de vänner som jag redan lagt till på min lista. Jag vill att den enbart skriver ut vänner som lagt till mig, men som jag ännu inte lagt till.

Hur skriver jag SQL för detta?

Medlem sedan dec. 20025 483 inlägg
#2
SELECT v.vannerID, v.vannerUserID, v.vannerToUserID, v.vannerDate,
m.member_id, m.strPic, m.strU, m.strOrt, m.strInlogg, m.strFnamn, m.strKon, m.intYear
FROM vanner v join members m on m.member_id = v.vannerUserID
WHERE v.vannerToUserID = "& userID &"  
AND m.member_id NOT IN (SELECT vannerToUserID FROM vanner WHERE vannerUserID = "& userID &")
Order by m.strInlogg DESC LIMIT 150
Medlem sedan aug. 2002600 inlägg
#3

Tusen tack Peter S!

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