25. oktober 2006 - 16:05Der er
12 kommentarer og 2 løsninger
Hjælp til Sql statement
Hej
Jeg har en tabel, kaldet "link". den har kolonner: FromUserId og ToUserID. Det jeg ønsker, er at jeg skal stå som FromUserID. Hvor jeg ønsker ToUserID som mine ToUserID har og altså ikke jeg direkte har på mine ToUserID.
Min venners venner skal jeg har returneret id'er på, altså ToUserId som jeg ikke står som FromUseriD på, men de Touserid som jeg står FromUserid på. Håber det var bedre.
Hvad mener du med "som jeg står FromUserid på"? Betyder det at du vil have returneret alle ToUserID hvor FromUserID er forskellig fra XX? XX = dit specifikke FromUserID, f.eks. 217 I så fald er sætningen blot: Select distinct top 100 link.ToUserID FROM link WHERE FromUserID <> 237
Prøver lige endnu engang, kolonnerne står sådan. Jeg har id 4, hvis jeg så selecter alle jeg har som ToUserID, får jeg 6. Det jeg ønsker er at selecte alle som ham jeg har som ToUserID(6) har som ToUserID(2)
Dine forklaringer er nærmest volapyk, sorry. Så jeg har taget udgangspunkt i din formulering "Min venners venner skal jeg har returneret id'er på".
Så kunne en løsning være:
SELECT DISTINCT ToUserID FROM link WHERE FromUserID IN (SELECT ToUserID FROM link WHERE FromUserID = 4)
hvor ToUserID jo så ville pege på dine venners venner.
Var det det, du tænkte på? Ellers må du til tasterne igen og forsøge med en bedre forklaring (helst med mere udbyggede data (både grunddata fra tabellen og det søgte resultat ud fra disse data).
Hvis det skulle være lidt mere udbygget, kunne man også tænke sig noget lignende dette:
SELECT u1.ID AS MitID, u1.Navn AS Mig, u2.ID AS MinVensID, u2.Navn AS MinVen, u3.ID AS MinVensVensID, u3.MinVensVen FROM users u1 INNER JOIN link l1 ON u1.ID = l1.FromUserID INNER JOIN users u2 ON l1.ToUserID = u2.ID INNER JOIN link l2 ON u2.ID = l2.FromUserID INNER JOIN users u3 ON l2.ToUserID = u3.ID WHERE u1.ID = 4
SELECT u1.ID AS MitID, u1.Navn AS Mig, u2.ID AS MinVensID, u2.Navn AS MinVen, u3.ID AS MinVensVensID, u3.ID AS MinVensVen FROM users u1 INNER JOIN link l1 ON u1.ID = l1.FromUserID INNER JOIN users u2 ON l1.ToUserID = u2.ID INNER JOIN link l2 ON u2.ID = l2.FromUserID INNER JOIN users u3 ON l2.ToUserID = u3.ID WHERE u1.ID = 4
SELECT u1.ID AS MitID, u1.Navn AS Mig, u2.ID AS MinVensID, u2.Navn AS MinVen, u3.ID AS MinVensVensID, u3.Navn AS MinVensVen FROM users u1 INNER JOIN link l1 ON u1.ID = l1.FromUserID INNER JOIN users u2 ON l1.ToUserID = u2.ID INNER JOIN link l2 ON u2.ID = l2.FromUserID INNER JOIN users u3 ON l2.ToUserID = u3.ID WHERE u1.ID = 4
"Dine forklaringer er nærmest volapyk, sorry. Så..." hehe.... Godt at se andre også blev helt kulret af de forklaringer... sikke en morsomhed her i frokostpausen :-)
Jeg er sikker på der findes en løsning, hvis vi ellers nogensinde kommer så langt som til at forstå hvad vi skal svare på *LOL*
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.