⊗ppPmDOGD 382 of 447 menu

Récupération de données de tables liées en PHP

Faisons une requête qui récupérera tous les utilisateurs avec leurs villes. Pour cela, nous aurons besoin de la commande LEFT JOIN :

Sa syntaxe est la suivante :

SELECT champs FROM nom_table LEFT JOIN nom_table_liée ON condition_liaison WHERE condition_sélection

Analysons les différentes parties de la syntaxe de cette commande.

Champs

Comme la sélection se fait à partir de plusieurs tables, la sélection de tous les champs via * ne fonctionnera pas. La requête suivante sélectionnera les champs uniquement de la table principale, mais pas de la table liée :

SELECT *

Pour que les données soient sélectionnées de toutes les tables, il faut préciser le nom de la table avant * pour la sélection :

SELECT users.*, cities.*

Ou bien, on peut énumérer les champs dont nous avons besoin en précisant le nom de la table devant eux :

SELECT users.name, cities.name

Ces deux méthodes posent un problème. Le fait est que si les champs dans les tables ont les mêmes noms, alors dans le tableau PHP, il y aura un conflit de noms et un seul champ l'emportera, le second ne sera pas présent.

Pour résoudre le problème, il faut renommer les noms en conflit via la commande as :

SELECT users.name, cities.name as city_name

Liaison

Après la commande ON, nous devons indiquer les champs des deux tables sur lesquels s'établit la liaison. Dans notre cas, ce sera le champ id de la table des villes et le champ city_id de la table des utilisateurs :

ON cities.id=users.city_id

Requête

Au final, la requête qui récupérera les utilisateurs avec leurs villes ressemblera à ceci :

SELECT users.name, cities.name as city_name FROM users LEFT JOIN cities ON cities.id=users.city_id

Tâches pratiques

Supposons que vous ayez une table de produits et une table de leurs catégories. Écrivez une requête qui récupérera les noms des produits ainsi que leurs catégories.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser