Les instructions SQL JOIN peuvent rassembler des données de 2 tables ou plusieurs tables avec une seule requête
Représentation des données dans une base de données @crédit image Openclassrooms
Les bases de données relationnelles sont une écurie de nombreuses entreprises. Ils sont créés avec un langage informatique appelé SQL (Structured Query Language). Si vous travaillez avec des bases de données relationnelles , vous examinerez ou collecterez occasionnellement des données qui se trouvent dans plusieurs tables de la base de données.
Qu'est-ce qu'une instruction SQL JOIN?
Une instruction SQL JOIN permet de joindre deux ou plusieurs tables, généralement basées sur une colonne associée afin que les données soient traitées comme si elles se trouvaient dans une table. Les tables elles-mêmes ne sont pas modifiées par la jointure.
SQL JOIN est flexible et fonctionnel. Bien qu'il existe plusieurs types de jointures, la jointure interne est l'une des plus faciles à comprendre et à utiliser. Jetez un œil aux instructions SQL suivantes qui illustrent comment combiner les résultats de trois tables différentes à l'aide d'une jointure interne.
Exemple de jointure interne
Par exemple, prenez des tables qui contiennent des conducteurs dans une table et des correspondances de véhicules dans la seconde. La jonction intérieure se produit lorsque le véhicule et le conducteur sont situés dans la même ville. La jointure interne sélectionne toutes les lignes des deux tables qui contiennent une correspondance entre les colonnes d'emplacement.
L'instruction SQL ci-dessous combine les données des tables Conducteurs et Véhicules dans les cas où le conducteur et le véhicule sont situés dans la même ville:
SELECT nom, prénom, étiquette
FROM drivers, véhicules
WHERE drivers.location = vehicules.location
Cette requête produit les résultats suivants:
nom prénom tag
-------- --------- ---
Baker Roland H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT
Maintenant, étendez cet exemple pour inclure une troisième table. Pour inclure uniquement les conducteurs et les véhicules présents à des emplacements ouverts le week-end, insérez une troisième table dans la requête en étendant l'instruction JOIN comme suit:
SELECT nom, prénom, étiquette, open_weekends
FROM conducteurs, véhicules, emplacements
WHERE drivers.location = vehicules.location
AND vehicules.location = locations.location
AND locations.open_weekends = 'Oui'
Cette requête produit les résultats suivants:
nom prénom tag open_weekends
-------- --------- --- -------------
Baker Roland H122JM oui
Jacobs Abraham J291QR oui
Jacobs Abraham L990MY oui
Cette puissante extension de l'instruction SQL JOIN de base combine les données de manière complexe. Outre la combinaison de tables avec une jointure interne, cette technique combine plusieurs tables avec d'autres types de jointures.
Autres types de jointures
Lorsque les tables ont un enregistrement correspondant, les jointures internes sont la voie à suivre, mais parfois une table n'a pas d'enregistrement associé pour les données sur lesquelles la jointure est construite, de sorte que la requête échoue. Ce cas appelle une jointure externe , qui inclut les résultats qui existent dans une table mais qui n'a pas de correspondance correspondante dans la table jointe.
En outre, vous pouvez choisir d'utiliser un type de jointure différent, selon les circonstances. Ces autres types de jointures sont:
- Left outer join ( jointure gauche): contient tous les enregistrements de la table de gauche, même si la table de droite n'a pas d'enregistrement correspondant.
- Right outer join ( jointure droite): renvoie toutes les informations pertinentes de la table de droite, même si la table de gauche n'a pas de correspondance.
- Full join : sélectionne tous les enregistrements de deux tables, qu'ils aient ou non une condition de jointure correspondante.