Avatar billede ihtezaz Praktikant
25. oktober 2006 - 16:05 Der 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.
Avatar billede nhoff Nybegynder
25. oktober 2006 - 16:10 #1
Kan du ikke forklare dig lidt tydeligere? Din sætning sludrer lidt :-)
Avatar billede ihtezaz Praktikant
25. oktober 2006 - 16:17 #2
sorry.


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.
Avatar billede nhoff Nybegynder
25. oktober 2006 - 16:27 #3
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
Avatar billede ihtezaz Praktikant
25. oktober 2006 - 16:35 #4
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)

FromUserID  ToUserID
  4            6
  6            2
Avatar billede ihtezaz Praktikant
25. oktober 2006 - 16:41 #5
Hov glemte lige, at ham med userID 2 må jeg ikke have som ToUserID. dvs. sådan
Jeg har id 4.
Dette må ikke være tilfældet.
FromUserID  ToUserID
  4          2
Avatar billede kjulius Novice
26. oktober 2006 - 01:09 #6
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).
Avatar billede kjulius Novice
26. oktober 2006 - 01:28 #7
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
Avatar billede kjulius Novice
26. oktober 2006 - 01:33 #8
Sorry! Skulle have været

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
Avatar billede kjulius Novice
26. oktober 2006 - 01:35 #9
@£#¤¤$$!!!

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
Avatar billede janus_007 Nybegynder
26. oktober 2006 - 13:28 #10
"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*
Avatar billede ihtezaz Praktikant
30. oktober 2006 - 20:56 #11
Jeg har fået det løst, kjulius, takker for hjælpen, smid et svar så får du halvdelen af points, da det frembragt mig til løsningen.

Janus, hvis du ikke forstå spørgsmålet, så hvorfor ikke bare hold kæft !!
Avatar billede kjulius Novice
30. oktober 2006 - 21:24 #12
Tak, godt du fik det på plads... :-)
Avatar billede ihtezaz Praktikant
31. oktober 2006 - 23:31 #13
anden halvdelen beholder jeg bare, takker kjulius
Avatar billede ihtezaz Praktikant
31. oktober 2006 - 23:31 #14
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester