Avatar billede stephanryer Nybegynder
03. oktober 2006 - 11:51 Der er 12 kommentarer og
1 løsning

Forskel på LEFT OUTER JOIN og LEFT JOIN?

Er der nogen, der for mine beskedne 5 point, kan forklare hvad forskellen er på
LEFT OUT JOIN, LEFT JOIN og LEFT INNER JOIN?

På forhånd tak.
Avatar billede coderdk Praktikant
03. oktober 2006 - 11:58 #1
LEFT JOIN er en forkortelse for LEFT OUTER JOIN, så vidt jeg husker :)
Avatar billede bernhof Nybegynder
03. oktober 2006 - 11:59 #2
Såvidt jeg ved, er der ikke noget der hedder LEFT INNER JOIN, da en LEFT JOIN er en OUTER join. Derfor giver det også samme resultat hvis du skriver LEFT JOIN som LEFT OUTER JOIN.

I følgende eksempel

  SELECT * FROM tabel1 LEFT JOIN tabel2 ON tabel1.felt = tabel2.felt

medtages alle poster i tabel1, selvom de ikke har nogle relaterede poster i tabel2. Du kunne have skrevet LEFT OUTER JOIN istedet og fået samme resultat.

Hvis du skriver

  SELECT * FROM tabel2 RIGHT JOIN tabel1 ON tabel1.felt = tabel2.felt

får du også samme resultat.
Avatar billede coderdk Praktikant
03. oktober 2006 - 11:59 #3
Det er det!
Avatar billede stephanryer Nybegynder
03. oktober 2006 - 12:04 #4
ok takker guys :)

Hvad gør INNER JOIN så? Er det så bare det samme som JOIN?
Avatar billede coderdk Praktikant
03. oktober 2006 - 12:10 #5
Yeps, den returnerer kun matchende rækker fra begge tabeller
Avatar billede stephanryer Nybegynder
03. oktober 2006 - 12:21 #6
ok, forvirrende nok med de mange betegnelser, men beroligende at de gør det samme :)

Bernhof, hvis du vil have del i da mange point ;) må du lige lægge et svar.

I skal begge have mange tak for svarene.
Avatar billede bernhof Nybegynder
06. oktober 2006 - 11:38 #7
Heheh, jeg klarer mig uden.
Avatar billede bernhof Nybegynder
06. oktober 2006 - 12:11 #8
Du behøver faktisk aldrig skrive OUTER eller INNER, hvis du ikke synes. De er der bare for læsbarhedens skyld. Dvs. du kan nøjes med:

LEFT JOIN
RIGHT JOIN
FULL JOIN (kendt som FULL OUTER JOIN, som medtager alle rækker i begge tabeller)
JOIN
Avatar billede stephanryer Nybegynder
06. oktober 2006 - 16:24 #9
oki, men tusind tak :)
Avatar billede coderdk Praktikant
06. oktober 2006 - 18:56 #10
Og

CROSS JOIN

;)
Avatar billede stephanryer Nybegynder
06. oktober 2006 - 19:42 #11
Hvad gør Cross join ?
Avatar billede coderdk Praktikant
06. oktober 2006 - 21:52 #12
Det samme som:

SELECT * FROM tabel1, tabel2

Altså selecter bare ud fra begge og sammenholder række for række uden en egentlig "relation"
Avatar billede stephanryer Nybegynder
07. oktober 2006 - 19:59 #13
oki, tak :)
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