Join (SQL): verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Geen bewerkingssamenvatting
het gegeven voorbeeld werkt met "inner", dus dan klopt iets niet + spaties
Regel 7:
SELECT * FROM tabel1 LEFT OUTER JOIN tabel2 ON tabel1.veld = tabel2.veld
</source>
Een left outer join garandeert dus de aanwezigheid van alle rijen van de linker tabel (hier tabel1). Een inner -join doet dat niet, omdat rijen van tabel1 waarvoor er in tabel2 geen enkele rij gevonden wordt waarvoor tabel1.veld = tabel2.veld niet getoond worden.
 
Dit kan aangevuld worden met de <code>WHERE</code>-clause en de andere clauses. In de <code>ON</code>-clause wordt gespecificeerd welke velden van de beide tabellen overeen moeten komen. Dit wordt gebruikt om de goede records van de tweede tabel bij de eerste te vinden. Indien geen record in tabel2 gevonden wordt is er toch een resultaatrecord, weliswaar met lege velden (NULL's) in het deel dat uit tabel2 afkomstig is. De sleutelwoordcombinatie <code>RIGHT OUTER JOIN</code> kan ook gebruikt worden. Verwissel in dat geval tabel1 en tabel2 in de uitleg hierboven. Een <code>FULL OUTER JOIN</code> ten slotte garandeert de aanwezigheid van alle rijen van zowel tabel1 als tabel2: het resultaat is dus de <code>UNION</code> van de <code>LEFT OUTER JOIN</code> en de <code>RIGHT OUTER JOIN</code>.
Regel 102:
|}
 
Een outerinner-join is in eerste instantie gelijk aan wat men in de [[verzamelingenleer]] en in de [[relationele algebra]] het [[cartesisch product]] noemt. Dit wil zeggen dat het resultaat alle combinaties van records van de eerste tabel met alle records van de tweede tabel bevat.
In tweede instantie —na— na het <code>ON</code>-keyword—keyword — worden deze records gefilterd zodat enkel de rijen overblijven waarvan de velden, die in de ON-clause gespecificeerd zijn, overeenkomen.
De syntaxis is als volgt:
<source lang="sql">