WikiDer > Beitreten (SQL)
EIN BEITRETEN-Klausel ist Teil von a SQLabfragen, verursachen Aufzeichnungen von zwei oder mehr Tischen von einem Datenbank kombiniert werden können.
Es gibt zwei Arten von Joins in SQL gemäß der ANSIA-default, ein Inner Join und ein Outer Join. Ein Outer Join kann wiederum links, rechts oder vollständig sein.
Ein Left Outer Join fragt eine Tabelle ab und sucht dann für jeden Ergebnisdatensatz nach zusätzlichen Feldern aus der zweiten Tabelle. Das Syntax ist wie folgt:
WÄHLEN*VONTabelle 1LINKSÄUSSEREBEITRETENTabelle 2AUFTabelle 1.Feld=Tabelle 2.FeldEin Left Outer Join garantiert somit das Vorhandensein aller Zeilen der linken Tabelle (hier Tabelle1). Ein Inner-Join tut dies nicht, da Zeilen von table1, für die table2 keine Zeilen findet, für die table1.field = table2.field ist, nicht angezeigt.
Dies kann ergänzt werden durch die WOKlausel und die anderen Klauseln. In dem AUF-clause gibt an, welche Felder der beiden Tabellen übereinstimmen müssen. Dies wird verwendet, um die richtigen Datensätze der zweiten Tabelle in der Nähe der ersten zu finden. Wenn in table2 kein Datensatz gefunden wird, gibt es immer noch einen Ergebnissatz, wenn auch mit leeren Feldern (NULLs) in dem Teil, der aus table2 stammt. Die Keyword-Kombination RECHTER ÄUSSERER JOIN kann auch benutzt werden. Tauschen Sie in diesem Fall table1 und table2 in der obigen Erklärung aus. EIN FULL OUTER JOIN garantiert schließlich das Vorhandensein aller Zeilen von table1 und table2 : das Ergebnis ist also das UNION des LINKE ÄUSSERE VERBINDUNG und der RECHTER ÄUSSERER JOIN.
| Tabelle "T1" | Tabelle "T2" | Abfrage | Ergebnis | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| WÄHLEN*VONT1INNEREBEITRETENT2AUFT1.C1=T2.C1; |
| ||||||||||||||||||||||||||||||||||||
WÄHLENT1.C2,T2.C2VONT1LINKSÄUSSEREBEITRETENT2AUFT1.C1=T2.C1; |
| ||||||||||||||||||||||||||||||||||||||
WÄHLENT1.C2,T2.C2VONT1RECHTÄUSSEREBEITRETENT2AUFT1.C1=T2.C1; |
| ||||||||||||||||||||||||||||||||||||||
WÄHLENT1.C2,T2.C2VONT1VOLLÄUSSEREBEITRETENT2AUFT1.C1=T2.C1; |
|
Ein Inner-Join ist zunächst gleich dem, was man im Mengenlehre und in der relationale Algebra es kartesisches Produkt Anrufe. Das Ergebnis enthält also alle Kombinationen von Datensätzen aus der ersten Tabelle mit allen Datensätzen aus der zweiten Tabelle AUF-keyword — Diese Datensätze werden so gefiltert, dass nur die Zeilen übrig bleiben, deren Felder in der ON-Klausel übereinstimmen. Die Syntax lautet wie folgt:
WÄHLEN*VONTabelle 1INNEREBEITRETENTabelle 2AUFTabelle 1.Feld=Tabelle 2.FeldDie Anzahl der Ergebnissätze eines Inner-Joins kann maximal die Anzahl der Sätze im kartesischen Produkt erreichen. Datensätze aus Tabelle1, für die keine übereinstimmenden Datensätze in Tabelle2 gefunden wurden, werden nicht angezeigt; dafür das bereits erwähnte ÄUSSERER JOIN. Andererseits werden auch Datensätze aus Tabelle1, für die mehrere übereinstimmende Datensätze aus Tabelle2 gefunden wurden, genauso oft angezeigt.
Bisher wurde der Inner-Join anders formuliert, nämlich ohne den AUF-Klausel; die Beitrittsinformationen waren gerade in der WO-Klausel. Dann wurde schnell ein Fehler gemacht. Ein Beispiel für die alte Schreibweise:
WÄHLEN*VONTabelle 1,Tabelle 2WOTabelle 1.Feld=Tabelle 2.FeldDiese Notation ist immer noch syntaktisch korrekt und logisch äquivalent zum Inner-Join.
Siehe auch
| Datenbanken | ||||||||
|---|---|---|---|---|---|---|---|---|
Datenbankverwaltungssystem · Datenbankmodell · Datenbanknormalisierung · referenzielle Integrität · relationale Algebra · relationale Datenbank · relationales Modell
|
| Quellen, Anmerkungen und/oder Verweise |