Natural Join (SQL): Unterschied zwischen den Versionen
Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen (Die Seite wurde neu angelegt: Der Natural Join ist eine Erweiterung des Cross Joins, dabei wird automatisch die Ergebnismenge der beiden Tabellen gefiltert. Diese Einschrän...) |
|||
Zeile 1: | Zeile 1: | ||
− | Der Natural Join ist eine Erweiterung des [[Cross | + | Der Natural Join ist eine Erweiterung des [[Cross Join (SQL) | Cross Joins]], dabei wird automatisch die Ergebnismenge der beiden [[Tabelle (SQL) | Tabellen]] gefiltert. Diese Einschränkung basiert auf gleichen Spaltennamen. |
+ | ===Syntax=== | ||
+ | Verbunden werden die beiden Tabellen mit den Schlüsselwörtern ''NATURAL JOIN''. | ||
+ | <code=sql> | ||
+ | SELECT * FROM tabelle1 NATURAL JOIN tabelle2; | ||
+ | </code=sql> | ||
+ | |||
+ | ===Beispiel=== | ||
+ | Tabelle 1 - Personentabelle: | ||
+ | {| {{Prettytable}} | ||
+ | ! Person_ID | ||
+ | ! Name | ||
+ | ! Ort_ID | ||
+ | |- | ||
+ | | 1 | ||
+ | | person1 | ||
+ | | 1 | ||
+ | |- | ||
+ | | 2 | ||
+ | | person2 | ||
+ | | 1 | ||
+ | |- | ||
+ | | 3 | ||
+ | | person3 | ||
+ | | 2 | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | Tabelle 2 - Ortstabelle: | ||
+ | {| {{Prettytable}} | ||
+ | ! Ort_ID | ||
+ | ! Ortsname | ||
+ | |- | ||
+ | | 1 | ||
+ | | Berlin | ||
+ | |- | ||
+ | | 2 | ||
+ | | Hamburg | ||
+ | |- | ||
+ | | 3 | ||
+ | | München | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | Bei Bildung des Joins über die beiden Tabellen ergibt sich folgendes Bild. | ||
+ | <code=sql> | ||
+ | SELECT * FROM personentabelle NATURAL JOIN ortstabelle; | ||
+ | </code=sql> | ||
+ | {| {{Prettytable}} | ||
+ | ! Person_ID | ||
+ | ! Name | ||
+ | ! Ort_ID | ||
+ | ! Ort_ID | ||
+ | ! Ortsname | ||
+ | |- | ||
+ | | 1 | ||
+ | | person1 | ||
+ | | 1 | ||
+ | | 1 | ||
+ | | Berlin | ||
+ | |- | ||
+ | | 2 | ||
+ | | person2 | ||
+ | | 1 | ||
+ | | 1 | ||
+ | | Berlin | ||
+ | |- | ||
+ | | 3 | ||
+ | | person3 | ||
+ | | 2 | ||
+ | | 2 | ||
+ | | Hamburg | ||
+ | |} | ||
+ | |||
+ | Da es für München keine Person gibt wird dieser Eintrag nicht angezeigt. | ||
[[Kategorie:SQL]] | [[Kategorie:SQL]] |
Version vom 24. November 2008, 11:06 Uhr
Der Natural Join ist eine Erweiterung des Cross Joins, dabei wird automatisch die Ergebnismenge der beiden Tabellen gefiltert. Diese Einschränkung basiert auf gleichen Spaltennamen.
Syntax
Verbunden werden die beiden Tabellen mit den Schlüsselwörtern NATURAL JOIN. <code=sql> SELECT * FROM tabelle1 NATURAL JOIN tabelle2; </code=sql>
Beispiel
Tabelle 1 - Personentabelle:
Person_ID | Name | Ort_ID |
---|---|---|
1 | person1 | 1 |
2 | person2 | 1 |
3 | person3 | 2 |
Tabelle 2 - Ortstabelle:
Ort_ID | Ortsname |
---|---|
1 | Berlin |
2 | Hamburg |
3 | München |
Bei Bildung des Joins über die beiden Tabellen ergibt sich folgendes Bild. <code=sql> SELECT * FROM personentabelle NATURAL JOIN ortstabelle; </code=sql>
Person_ID | Name | Ort_ID | Ort_ID | Ortsname |
---|---|---|---|---|
1 | person1 | 1 | 1 | Berlin |
2 | person2 | 1 | 1 | Berlin |
3 | person3 | 2 | 2 | Hamburg |
Da es für München keine Person gibt wird dieser Eintrag nicht angezeigt.