Mysql 两个表之间的联接复制了一些结果
我在PHP中通过这个查询连接了两个表:Mysql 两个表之间的联接复制了一些结果,mysql,sql,Mysql,Sql,我在PHP中通过这个查询连接了两个表: SELECT a.id,b.address FROM mytable a LEFT JOIN mysecondtable b ON a.`id`=b.`id` WHERE a.`Name` LIKE '?' 在表b中,我有两行具有相同的用户“id”,但对于查询,我希望如下所示: 对于相同结果中的一个id和两个地址 目前,我有两个结果,如下所示: 12 theaddress 12 thesecondaddress 我想 12 theaddress
SELECT a.id,b.address
FROM mytable a
LEFT JOIN mysecondtable b
ON a.`id`=b.`id`
WHERE a.`Name` LIKE '?'
在表b中,我有两行具有相同的用户“id”,但对于查询,我希望如下所示:
对于相同结果中的一个id和两个地址
目前,我有两个结果,如下所示:
12 theaddress
12 thesecondaddress
我想
12 theaddress thesecondaddress
有可能吗?如果最多有两个,则可以使用聚合:
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
向我们展示更多的示例表数据及其预期结果。(但我更愿意说你应该重新设计你的桌子…)也许是团体会议?很难说您需要的是列还是字符串。