如何实现单个mySQL行答案?
我有两张桌子:
Table Flats
idFlat INT(11)
Street VARCHAR(45)
表租户
id Tenant INT(11)
Flats_idFlat INT(11)
Surname VARCHAR(45)
Firstname VARCHAR(45)
我的查询
SELECT
Flats.idFlat,
Flats.Street,
Tenants.Surname,
Tenants.Firstname
FROM
Flats
LEFT JOIN
Tenants ON Flats.idFlat = Tenants.Flats_idFlat
WHERE
Tenants.Flats_idFlat IS NOT NULL
结果如下,因为John和Peggy住在同一个公寓里:
idFlat Street Surname Firstname
1 Taft Ave John Miller
1 Taft Ave Peggy Ballot
我正在寻找这样的结果:
idFlat Street Surname Firstname
1 Taft Ave John/Peggy Miller/Ballot
我尝试了一些像
这样的CONCAT_WS查询CONCAT_WS(‘/', Tenants.Surname, Tenants.Firstname) AS Tenants
但它总是导致单位的多个输出。
答案 0 :(得分:1)
尝试将GROUP_CONCAT
与自定义排序和分隔符一起使用:
SELECT
f.idFlat,
f.Street,
GROUP_CONCAT(t.Surname ORDER BY t.Surname SEPARATOR '/') AS Surname,
GROUP_CONCAT(t.Firstname ORDER BY t.Surname SEPARATOR '/') AS Firstname
FROM Flats f
INNER JOIN Tenants t
ON f.idFlat = t.Flats_idFlat
GROUP BY
f.idFlat,
f.Street
请注意,根据where子句中的逻辑,您当前的左连接可能会缩减为内连接。