it-swarm.com.de

Wie kann ich nur einer Spalte beitreten?

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?

25
Kevin Grace

Angenommen, Sie meinen "eine Spalte aus Tabelle 2 auswählen":

   SELECT table1.*, table2.first_name
     FROM table1
LEFT JOIN table2
...
54

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
2
MTK

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
1
davecoulter