Соединение двух таблиц, дублирующих некоторые результаты - PullRequest
2 голосов
/ 17 апреля 2019

Я соединяю две таблицы по этому запросу в моем PHP:

SELECT a.id,b.address
FROM mytable a 
LEFT JOIN mysecondtable b 
ON a.`id`=b.`id` 
WHERE a.`Name` LIKE '?'

И в таблице b у меня есть 2 строки с тем же идентификатором пользователя, но с запросом, который я хотел бы получить как: для одного идентификатора два адреса в одном и том же результате

На данный момент у меня есть 2 результата в виде:

12 theaddress
12 thesecondaddress

и я бы хотел

12 theaddress thesecondaddress

это возможно? спасибо

1 Ответ

4 голосов
/ 17 апреля 2019

Вы можете использовать агрегацию, если у вас их максимум два:

SELECT a.id MIN(b.address) as address1,
       NULLIF(MAX(b.address), MIN(b.address)) as address2
FROM mytable a LEFT JOIN
     mysecondtable b 
     ON a.`id`=b.`id` 
WHERE a.`Name` LIKE ?
GROUP BY a.id;

Если у вас есть неопределенное количество адресов, вы можете поместить их в строку с разделителем:

SELECT a.id GROUP_CONCAT(b.address SEPARATOR '|') as addresses
FROM mytable a LEFT JOIN
     mysecondtable b 
     ON a.`id`=b.`id` 
WHERE a.`Name` LIKE ?
GROUP BY a.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...