Как объединить только один столбец? - PullRequest
27 голосов
/ 28 августа 2011
SELECT * FROM table1
LEFT JOIN table2
ON table1.id = table2.table1_id
WHERE table1.id = 1

Мне нужно объединить только один столбец из таблицы 2, скажем, first_name.Как я могу это сделать?

Ответы [ 3 ]

56 голосов
/ 28 августа 2011

Предполагая, что вы имеете в виду «выбрать один столбец из таблицы 2»:

   SELECT table1.*, table2.first_name
     FROM table1
LEFT JOIN table2
...
2 голосов
/ 26 мая 2017

Принятый ответ является правильным, но я столкнулся со странной ошибкой, когда таблицы находятся в двух разных базах данных:

Предполагая, что таблица1 находится в базе данных1, а таблица2 - в базе данных2.Первоначально я пробовал это:

SELECT *, database2.table2.first_name FROM table1
LEFT JOIN database2.table2
ON database1.table1.id = database2.table2.table1_id
WHERE table1.id = 1

Странно, что если я пытаюсь выполнить этот запрос из PHP PDO, ошибок не было, но результат содержал все столбцы из database2.table2 (ожидался только столбец first_name).

Но если я попробовал тот же запрос от phpmyadmin, то получил ошибку синтаксиса:

Таблица 'database2.table1' не существует

Таким образом, для решения этой проблемы, все базы данных должны быть указаны неявно, как это :

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
1 голос
/ 28 августа 2011

Вы имеете в виду в дополнение к уже указанному запросу:

SELECT * FROM table1
LEFT JOIN table2
ON table1.id = table2.table1_id
WHERE table1.id = 1 and table1.first_name = table2.first_name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...