gpt4 book ai didi

mysql - 如何获得单个 mySQL 行答案?

转载 作者:行者123 更新时间:2023-11-29 10:37:39 24 4
gpt4 key购买 nike

如何获得单个 mySQL 行答案?

我给出了两个表格:

平底 table

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 

但它总是会导致单位的多个输出。

最佳答案

尝试使用带有自定义排序和分隔符的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 子句中的逻辑,您当前的左联接可能可以简化为内部联接。

关于mysql - 如何获得单个 mySQL 行答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46129181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com