SELECT * FROM table1
LEFT JOIN table2
ON table1.id = table2.table1_id
WHERE table1.id = 1
Je n'ai besoin de joindre qu'une seule colonne de la table 2, par exemple prénom___. Comment puis-je faire cela?
En supposant que vous vouliez dire "sélectionnez une colonne du tableau 2":
SELECT table1.*, table2.first_name
FROM table1
LEFT JOIN table2
...
La réponse acceptée est la réponse correcte, mais j'ai rencontré une erreur étrange lorsque les tables se trouvent dans deux bases de données différentes:
En supposant que la table1 est dans la base de données1 et la table2 dans la base de données2 . 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
La chose étrange est que si j'essaye cette requête à partir de PHP PDO, il n'y a pas eu d'erreur, mais le résultat contient toutes les colonnes de database2.table2 (attendu que la colonne prenom).
Mais si j'ai essayé la même requête de phpmyadmin, j'ai 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
Voulez-vous dire en plus de votre requête déjà énoncée:
SELECT * FROM table1
LEFT JOIN table2
ON table1.id = table2.table1_id
WHERE table1.id = 1 and table1.first_name = table2.first_name