通过此查询,我在PHP中加入了两个表:
SELECT a.id,b.address
FROM mytable a
LEFT JOIN mysecondtable b
ON a.`id`=b.`id`
WHERE a.`Name` LIKE '?'
在表b中,我有2行具有相同的用户“ id”,但对于查询,我希望具有以下内容: 同一结果中的一个id两个地址
目前,我有2个结果如下:
12 theaddress
12 thesecondaddress
我想
12 theaddress thesecondaddress
有可能吗?谢谢
答案 0 :(得分:4)
如果最多有两个,则可以使用聚合:
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