Avatar billede Slettet bruger
11. januar 2004 - 23:01 Der er 5 kommentarer og
1 løsning

Hjælp til query

Hejsa,

Jeg har brug for at hente følgende i en forespørgsel

en attribut fra 'brugere'
- har primærnøgle 'pid'
en attribut fra 'annoncer'
- har primærnøgle 'pid' og fremmednøgle 'brugerpid'
en attribut fra 'bytteinfo'
- har fremmednøgle 'annoncepid'

og jeg har ikke mulighed for at bruge sub-queries. Hvordan gør jeg det smartest?
Avatar billede avlund Nybegynder
11. januar 2004 - 23:04 #1
SELECT brugere.attr1, annoncer.attr2, bytteinfo.attr3 FROM brugere AS b LEFT JOIN annoncer AS a ON a.brugerid = b.pid LEFT JOIN bytteinfo AS bi ON bi.annoncepid = a.pid WHERE [dine restriktioner]
Avatar billede Slettet bruger
11. januar 2004 - 23:14 #2
det ser rigtigt ud

hvis nu jeg vil hente * fra både bytteinfo og fra annoncer, kan jeg så sige

SELECT brugere.email AS email, brugere.telefon AS telefon, annoncer.*, bytteinfo.* ?
Avatar billede avlund Nybegynder
11. januar 2004 - 23:32 #3
Ja, det ser jeg ingen problemer i. Omend det performancemæssigt er god stil at hente alle felter hver for sig i stedet for at bruge *.
Avatar billede Slettet bruger
12. januar 2004 - 15:03 #4
Det er jeg klar over, men jeg skal bruge * fra både annoner og bytteinfo.

Men det virker nu stadig ikke

SELECT brugere.email AS email, brugere.telefon AS telefon, annoncer.*, bytteinfo.*
FROM brugere AS b LEFT JOIN annoncer AS a ON a.brugerpid = b.pid LEFT JOIN bytteinfo AS bi ON bi.annoncepid = a.pid
WHERE annoncer.pid = 'H6wCc6f346'
AND brugere.godkendt = 1
AND bytteinfo.annoncepid = 'H6wCc6f346';

ved jeg skal returnere en tupel, men gør det ikke.. Kan du se hvad der er galt?
Avatar billede Slettet bruger
12. januar 2004 - 16:33 #5
ahh, fordi jeg skal referere tiol tupelvariablene i stedet

SELECT b.email AS email, b.telefon AS telefon, a.*, bi.*
FROM brugere b
LEFT JOIN annoncer a ON a.brugerpid = b.pid
LEFT JOIN bytteinfo bi ON bi.annoncepid = a.pid
WHERE a.pid = 'H6wCc6f346' AND bi.annoncepid = 'H6wCc6f346'
AND b.godkendt = 1;
Avatar billede avlund Nybegynder
12. januar 2004 - 20:46 #6
Ja, det giver mening. Så lærte jeg også selv noget. Takker for points.
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