webForumDet fria alternativet

sql hjälp NOT EXISTS

Databaser & SQLur Databashanterare & SQL

3 svar · 363 visningar · startad av mikael_a

Medlem sedan mars 2000475 inlägg
Frågan#1

Hej,

försöker att skapa ett online/offline funktion till ett community. Dock får jag det inte riktigt att fungera.

sql:en

SELECT * FROM user_friends, active_users
WHERE user_friends.username = '{$this->username}'
AND active_users.username = user_friends.username

visar alla aktiva användare på sidan. Dvs användaren loggar in, och han sparas i active_users, när han loggar ut, eller när hans session dör raderas han ifrån denna tabell, allt detta fungerar... det som jag inte får till är att visa de användare som är offline...

testar jag:

SELECT DISTINCT user.username AS name FROM user, user_friends
WHERE user.username != user_friends.username

så visas användaren både i offline och i online listan...

har testat med NOT EXISTS också men får det inte att fungera för det... någon som har ett förslag? måste gå att lösa med en SQL? annars för jag väll spara alla i en array och jämföra... fast blir det många användare känns detta segt..

Medlem sedan mars 2001196 inlägg
#2

Offline borde väl funka så här:

SELECT * FROM user_friends
WHERE NOT username IN(
SELECT user_friends.username FROM user_friends, active_users 
WHERE user_friends.username = '{$this->username}' 
AND active_users.username = user_friends.username)
Medlem sedan dec. 200012 464 inlägg
#3
SELECT * FROM user_friends
WHERE NOT exists(
SELECT * from active_users 
WHERE user_friends.username = active_users.username)
Medlem sedan mars 2000475 inlägg
#4

tack

133 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)