HDJHSKGDKJHSDMedlem sedan sep. 2001147 inlägg
hej..
Om man har en mysql-databas med massa användarnamn, och vill lista dem som är online (finns en online tabell också) hur gör man det smidigast och snabbast?
(prestandamässigt sett d.v.s)
Är det att loopa igenom varje användarnamn och kolla i online-listan?
tack i förväg.
spangoMedlem sedan juni 20006 147 inlägg
Nej, det skulle sannolikt vara det sämsta alternativet. En join av tabellerna torde vara det bästa...
SELECT u.name FROM users u, online o WHERE u.id = o.id
------------------
You can be a coward for a few minutes, or dead forever. /Rincewind
[Redigerat av spango den 08 dec 2001]
HDJHSKGDKJHSDMedlem sedan sep. 2001147 inlägg
hej, tack för svaret
jag sökte lite på mysql sidan men hittade inte nånting direkt begripligt, kan du / nån annan bara beskriva lite hur just den där kodsnutten funkar?
tack!
HDJHSKGDKJHSDMedlem sedan sep. 2001147 inlägg
för att vara totaljobbig...
vad menas med u och o ? :)
kan du förklara steg för steg?
tackar!
SPiNMedlem sedan mars 20005 832 inlägg
SELECT u.name FROM Users AS u, Online AS o WHERE o.online = 'online' AND u.id = o.id
Hämtar alla usernames från tabellen Users ( sätter Userse till salias u ) där alla Onbline-id,. strämmer översems med Users-id.
u och o är alias för Users och Online, för att göra SQL-satsen kortare.
------------------
SPiN, bjorne.w@telia.com
-- En ask vet jag stånda - den Yggdrasil heter, ett väldigt träd överöst av vita sanden. --
HDJHSKGDKJHSDMedlem sedan sep. 2001147 inlägg
Hej igen!
Hur ska detta lösas om "online" tabellen ligger i en annan databas? :)
användar databasen heter "leet_user" och tabellen med användare heter "main", sen ligger "online" tabellen i "leet_chat" databasen..
Det som ska jämföras mellan dessa är ett fält vid namn "uid" i "main" och "w_uid" i "online".
Online-listan ar dock lite "speciellt", för det finns flera records med samma uid (p.g.a uppdateringsautomatiken)..
om det hjälper sa hämtar jag online-listan så här:
SELECT * FROM online GROUP BY w_uid ORDER BY w_username
hoppas det går att fixa! tack! :)
HDJHSKGDKJHSDMedlem sedan sep. 2001147 inlägg
Om det är ett problem att "uid" fältet ska jämföras med "w_uid" i andra databasen/tabellen så kan jag ändra så det blir "uid" i båda databaserna/tabellerna..
Ska bara skriva om 5 sidor isåfall :)
HDJHSKGDKJHSDMedlem sedan sep. 2001147 inlägg
:o
Kan inte ens LarsG svara på detta? ;)
HDJHSKGDKJHSDMedlem sedan sep. 2001147 inlägg
Nu känns det som om det är 23231123:e gången jag svarar på mitt egna inlägg ;)
men!
Kan någon bara lite vänligt tipsa om vilken funktion/anrop som bör användas till detta?
eller ska jag köra med "loopar i loopen" ?