Avatar billede morw22 Nybegynder
19. oktober 1999 - 12:47 Der er 3 kommentarer og
1 løsning

Join i SQL

Jeg har fem tabeller:

projekter (indeholder selve projekterne)

adgang (kæder et projekt sammen med en
gruppe)

pgrupper (Indeholer navne på projektgrupper)

medlemgrup (kæder folk sammen med en eller flere projektgrupper)

personer (navne på folk)


Jeg kæder alle disse ting sammen med min join sætning:


SELECT DISTINCT projekter.*, personer.*, pgrupper.gruppenavn, adgang.gruppeID
FROM (adgang INNER JOIN ((medlemgrup INNER JOIN personer ON medlemgrup.personID = personer.ID) INNER JOIN pgrupper ON medlemgrup.gruppeID = pgrupper.ID) ON adgang.gruppeID = pgrupper.ID) INNER JOIN projekter ON adgang.projektID = projekter.ID;

Hvordan ændre jeg den så jeg får vist alle data der er i tabellen projekter selvom der ikke nødvendigvis er oprettet noget i de 4 andre tabeller.

Det må være noget med left, right eller outer JOIN, men jeg ved desværre ikke lige hvordan den skal klares.






Avatar billede mit Nybegynder
19. oktober 1999 - 12:59 #1
Prøv med:

SELECT DISTINCT projekter.*, personer.*, pgrupper.gruppenavn, adgang.gruppeID
FROM (adgang INNER JOIN ((medlemgrup INNER JOIN personer ON medlemgrup.personID = personer.ID) INNER JOIN pgrupper ON medlemgrup.gruppeID = pgrupper.ID) ON adgang.gruppeID = pgrupper.ID) RIGHT JOIN projekter ON adgang.projektID = projekter.ID;

Avatar billede uffe_kld Nybegynder
19. oktober 1999 - 13:05 #2
Hej morw22

Umidddelbart vil jeg mene at det skulle være mulig at udskifte alle inner joins med outer joins. Du skal dog være opmærksom på at MS ACCESS ikke understøtter outer joins, hvis det er den database du bruger.

Hvis du bruger MS Access har jeg ingen løsning.

Hilsen Uffe
Avatar billede morw22 Nybegynder
19. oktober 1999 - 13:08 #3
Dette virker

SELECT DISTINCT projekter.*, personer.*, pgrupper.gruppenavn
FROM (adgang LEFT JOIN ((medlemgrup LEFT JOIN personer ON medlemgrup.personID = personer.ID) RIGHT JOIN pgrupper ON medlemgrup.gruppeID = pgrupper.ID) ON adgang.gruppeID = pgrupper.ID) RIGHT JOIN projekter ON adgang.projektID = projekter.ID;
Avatar billede morw22 Nybegynder
19. oktober 1999 - 13:09 #4
Ellers tak for de hurtige 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