SELECT * FROM table1
LEFT JOIN table2
ON table1.id = table2.table1_id
WHERE table1.id = 1
Ich muss nur eine Spalte aus Tabelle 2 zusammenfügen, z. B. first_name . Wie kann ich das tun?
Angenommen, Sie meinen "eine Spalte aus Tabelle 2 auswählen":
SELECT table1.*, table2.first_name
FROM table1
LEFT JOIN table2
...
Die akzeptierte Antwort ist die richtige Antwort, aber ich habe einen merkwürdigen Fehler festgestellt, wenn sich die Tabellen in zwei verschiedenen Datenbanken befinden:
Angenommen, table1 befindet sich in database1 und table2 in database2 . Anfangs habe ich Folgendes versucht:
SELECT *, database2.table2.first_name FROM table1
LEFT JOIN database2.table2
ON database1.table1.id = database2.table2.table1_id
WHERE table1.id = 1
Das Merkwürdige ist, dass, wenn ich diese Abfrage aus PHP PDO versuche, keine Fehler aufgetreten sind, das Ergebnis jedoch alle Spalten aus database2.table2 enthielt (erwartet nur first_name-Spalte).
Wenn ich aber die gleiche Abfrage von phpmyadmin ausprobiert habe, bekam ich einen sintax-Fehler:
Tabelle 'database2.table1' existiert nicht
Also, um das zu lösen, müssen alle Datenbanken implizit wie folgt angegeben werden :
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
Meinen Sie zusätzlich zu Ihrer bereits genannten Anfrage:
SELECT * FROM table1
LEFT JOIN table2
ON table1.id = table2.table1_id
WHERE table1.id = 1 and table1.first_name = table2.first_name