title image


Smiley INNER JOIN, OUTER JOIN - Daumenregel
Im Prinzip ist es ganz einfach:



Du hast zwei Tabellen, z.B. user und region. Beide Tabellen kannst du ganz simpel JOINen:

Version 1 (alte Form):

SELECT *

FROM user, region

WHERE user.region_id = region.id



Version 2 (neue Form):

SELECT *

FROM user JOIN region ON user.region_id = region.idDamit hast du den sogenannten Equi-Join, der alle Datensätze aus user und region verbindet, zu denen auf beiden Seiten ein entsprechender Datensatz existiert.



Jetzt willst du aber alle User sehen, auch die, die in region_id nichts stehen haben. Dazu benutzt man einen LEFT (OUTER) JOIN. Dabei wird die rechte (vom Schlüsselwort JOIN aus) Tabelle erweitert um einen Satz, der aus lauter NULLs besteht. Dieser kann dann simpel mit den NULL-Werten der anderen Tabelle geJOINed werden:

SELECT *

FROM user LEFT JOIN region ON user.region_id = region.idWillst du dagegen dabei alle Regionen sehen, auch wenn User dafür existiert, dann musst du die Tabellennamen austauschen:

SELECT *

FROM region LEFT JOIN user ON user.region_id = region.idIch hoffe, das hilft dir beim Verständnis.













diu vive floreque.
Spockus

erreicht am 04.03.2008 09:47:23

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: