webForumDet fria alternativet

Problem med join

2 svar · 293 visningar · startad av Thompa__85

Thompa__85Medlem sedan aug. 2002601 inlägg
#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?

Peter SMedlem sedan dec. 20025 484 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
Thompa__85Medlem sedan aug. 2002601 inlägg
#3

Tusen tack Peter S!

Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb