Join (SQL)
Una clàusula join SQL , que es correspon amb una operació de join en àlgebra relacional, combina columnes d'una o més taules d'una base de dades relacional. Crea un conjunt que pot ser guardat com una taula o ser utilitzat directament. Una JOIN
és un mitjà per combinar columnes d'una (self-join) o més taules utilitzant els valors comuns de cadascuna. L'estàndard ANSI-SQL especifica cinc tipus de JOIN: INNER, LEFT OUTER, RIGHT OUTER, FULL OUTER i CROSS.
Com a cas especial, una taula pot fer JOIN amb ella mateixa amb un self-join.
Un programador declara una setència JOIN
per a identificar files que poden ser unides. Per a cada fila s'avalua el predicat. Si és cert, es genera la fila combinada.
Taules de mostra
Les bases de dades relacionals solen estar normalitzades per eliminar la duplicació de la informació com quan una entitat té una relacio "una-a-moltes" amb una altra. Per exemple, una taula de rutes aèries contindrà els codis d'aeroport d'origen i destinació, i una taula d'aeroports contindrà la informació detallada de cada aeroport (nom complet, ciutat, coordinades, nombre de pistes, etc). La combinació de la taula de rutes amb la taula d'aeroports permetrà obtenir una altra taula amb els detalls desitjats dels aeroports de cada ruta..
Les explicacions sobre joins utilitzaran les següents dues taules. Les files contingudes en les taules serveixen per a il·lustrar l'efecte dels diferents tipus de join.Tot les explicacions subsegüents damunt uneixen tipus en aquest ús de marca de l'article del següent dues taules. Les files en aquestes taules serveixen per il·lustrar l'efecte de diferents tipus de joins
Taula de Rutes
Identificador_ruta | Codi_aerolinia | Numero_vol | Codi_aeroport_origen | Codi_aeroport_destinacio |
---|---|---|---|---|
1 | DY | DY 312 | AHO | ANR |
2 | AF | AF 317 | AHO | BOD |
3 | AF | AF 318 | AHO | BOD |
4 | EI | EI 313 | AHO | BRU |
5 | EI | EI 320 | AHO | CHQ |
6 | HV | HV 314 | AHO | DBV |
Taula d'aeroports
Codi_aeroport | Nom_Aeroport | Ciutat |
---|---|---|
AMS | Amsterdam Airport Schiphol | Amsterdam |
ARN | Stockholm Arlanda Airport | Stockholm |
BCN | Barcelona El Prat Airport | Barcelona |
BER | Berlin Brandenburg Airport | Berlin |
CDG | Paris Charles de Gaulle Airport | Paris |
CPH | Copenhagen Airport | Copenhagen |
FCO | Rome Fiumicino Airport | Rome |
LHR | London Heathrow Airport | London |