SELECT * FROM table1
LEFT JOIN table2
ON table1.id = table2.table1_id
WHERE table1.id = 1
J'ai besoin de joindre une seule colonne de la table 2, disons prénom. Comment puis-je le faire ?
SELECT * FROM table1
LEFT JOIN table2
ON table1.id = table2.table1_id
WHERE table1.id = 1
J'ai besoin de joindre une seule colonne de la table 2, disons prénom. Comment puis-je le faire ?
La réponse acceptée est la bonne, mais j'ai rencontré une erreur étrange lorsque les tables se trouvent dans deux bases de données différentes :
En supposant que la table 1 se trouve dans la base de données 1 et la table 2 dans la base de données 2. Au départ, j'ai essayé ceci :
SELECT *, database2.table2.first_name
FROM table1
LEFT JOIN database2.table2
ON database1.table1.id = database2.table2.table1_id
WHERE table1.id = 1
Ce qui est étrange, c'est que si j'essaie cette requête à partir de PHP PDO, il n'y a pas d'erreur mais le résultat contient toutes les colonnes de database2.table2 (je m'attendais à ce que seule la colonne first_name soit présente).
Mais si j'ai essayé la même requête depuis phpmyadmin, j'ai obtenu une erreur sintax :
La table 'database2.table1' n'existe pas.
Donc, pour résoudre ce problème, toutes les bases de données doivent être spécifiées implicitement comme ceci :
SELECT database1.table1.*, database2.table2.first_name
FROM database1.table1
LEFT JOIN database2.table2
ON database1.table1.id = database2.table2.table1_id
WHERE database1.table1.id = 1
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.