Avatar billede phliplip Nybegynder
15. marts 2004 - 12:25 Der er 8 kommentarer og
1 løsning

SQL: JOIN problemer

Hej Exp !

Hvordan JOINer jeg 2 brugere ind i en query ??

Har en tabel; 'opgaver' med felterne 'oprettet_bruger_id' og 'ansvarlig_bruger_id' som ref'er til brugere i tabellen 'brugere' !

SELECT opgaver.id, opgaver.tekst, brugere.fornavn, brugere. efternavn, brugere.initialer FROM opgaver LEFT JOIN brugere ON opgaver.oprettet_bruger_id=brugere.id LEFT JOIN brugere ON opgaver.ansvarlig_bruger_id=brugere.id WHERE osv osv osv

Kan det lade sig gøre ?? Og hvordan skiller jeg de 2 brugere ad ??
Avatar billede proaccess Nybegynder
15. marts 2004 - 12:29 #1
Du skal bare bruge Brugere 2 gange med forskellig navngivning...

SELECT o.id, o.tekst, b1.fornavn, b1. efternavn, b1.initialer, b2.fornavn, b2. efternavn, b2.initialer
FROM (opgaver AS o LEFT JOIN brugere AS b1 ON o.oprettet_bruger_id=b1.id) LEFT JOIN brugere AS b2 ON o.ansvarlig_bruger_id=b2.id
Avatar billede phliplip Nybegynder
15. marts 2004 - 13:04 #2
Ok..nu blev den sådan:

SELECT opgaver.id, opgaver.oprettet_timestamp, opgaver.oprettet_bruger_id, opgaver.ansvarlig_bruger_id, opgaver.titel, opgaver.tekst, opgaver.prioritet_id, opgaver.deadline, opgaver_prioritet_typer.type AS prioritet, ansvarlig_bruger.fornavn AS ansvarlig_fornavn, ansvarlig_bruger.efternavn AS ansvarlig_efternavn, ansvarlig_bruger.initialer AS ansvarlig_initialer, oprettet_bruger.fornavn AS oprettet_fornavn, oprettet_bruger.efternavn AS oprettet_efternavn, oprettet_bruger.initialer AS oprettet_initialer FROM opgaver LEFT JOIN opgaver_prioritet_typer ON opgaver.prioritet_id=opgaver_prioritet_typer.id LEFT JOIN brugere AS ansvarlig_bruger ON opgaver.ansvarlig_bruger_id=ansvarlig_bruger.id LEFT JOIN brugere AS oprettet_bruger ON opgaver.oprettet_bruger_id=ansvarlig_bruger.id WHERE....
Avatar billede phliplip Nybegynder
15. marts 2004 - 13:15 #3
Hmmm.. det virker ikke helt :(
Avatar billede phliplip Nybegynder
15. marts 2004 - 13:19 #4
Den finder 3 rækker... i alle 3 er ansvarlig_initialer/fornavn/efternavn med ! Men det er kun på den første at den finder oprettet_initialer/fornavn/efternavn..
Avatar billede proaccess Nybegynder
15. marts 2004 - 13:34 #5
Du skal sørge for at dine kæder i ON passer sammen med tabelnavnene...

HINT: du kæder opgaver.oprettet_bruger_id med ansvarlig_bruger.id til sidst!
Avatar billede phliplip Nybegynder
15. marts 2004 - 14:54 #6
Er det ikke også det jeg har gjort ??
Avatar billede proaccess Nybegynder
15. marts 2004 - 15:01 #7
JO - Men du skulle have brugt:

SELECT opgaver.id, opgaver.oprettet_timestamp, opgaver.oprettet_bruger_id, opgaver.ansvarlig_bruger_id, opgaver.titel, opgaver.tekst, opgaver.prioritet_id, opgaver.deadline, opgaver_prioritet_typer.type AS prioritet, ansvarlig_bruger.fornavn AS ansvarlig_fornavn, ansvarlig_bruger.efternavn AS ansvarlig_efternavn, ansvarlig_bruger.initialer AS ansvarlig_initialer, oprettet_bruger.fornavn AS oprettet_fornavn, oprettet_bruger.efternavn AS oprettet_efternavn, oprettet_bruger.initialer AS oprettet_initialer FROM opgaver LEFT JOIN opgaver_prioritet_typer ON opgaver.prioritet_id=opgaver_prioritet_typer.id LEFT JOIN brugere AS ansvarlig_bruger ON opgaver.ansvarlig_bruger_id=ansvarlig_bruger.id LEFT JOIN brugere AS oprettet_bruger ON opgaver.oprettet_bruger_id=oprettet_bruger.id WHERE....
Avatar billede proaccess Nybegynder
15. marts 2004 - 15:01 #8
Se sidste linie...              Oprettet bruger = Oprettet bruger !!!
Avatar billede phliplip Nybegynder
15. marts 2004 - 16:12 #9
Ahhh.... copy-paste screw up ;)
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