gpt4 book ai didi

mysql - 如何连接两个表并按第三个表排序?

转载 作者:行者123 更新时间:2023-11-29 21:26:16 25 4
gpt4 key购买 nike

所以我有三个表,但是我的 SQL JOIN 语句由于某种原因连续返回相同的结果,而不是返回所有行并按第三个对它们进行排序。

此语句正确运行并按预期返回 gName 和 uName:

选择
rpg.name AS gName,
u.用户名 AS uName

角色扮演_帮派角色扮演游戏
左连接
u.id = rpg.owner_id 上的用户 u

但是,当我尝试按第三个表中的字段进行选择和排序时,由于某种原因,结果与预期不符。我环顾四周并尝试了多次,但似乎没有一个对我有用,从来不需要加入超过 2 张 table 并同时订购。

所以...我尝试用第三个表尝试:

选择
rpg.name AS gName,
u.用户名 AS uName,
COUNT(rpgt.gang_id) AS gCount

角色扮演_帮派角色扮演游戏
左连接
u.id = rpg.owner_id 上的用户 u
左连接
roleplay_gangs_turfs rpgt 上 rpg.id = rpgt.gang_id
按 gCount 排序

结果:

gName | uName | gCount
-----------------------
test | hello | 2

预期:

gName | uName | gCount
-----------------------
test | hello | 2
zmaj | hello | 0
thir | ajtea | 0

感谢任何帮助,如果需要,可以根据要求发布更多详细信息。

最佳答案

当使用 count 等聚合时,您选择的想要在结果中保持唯一的字段应包含在 group by 子句中:

SELECT
rpg.name AS gName,
u.username AS uName,
COUNT(rpgt.gang_id) AS gCount
FROM
roleplay_gangs rpg
LEFT JOIN
users u on u.id = rpg.owner_id
LEFT JOIN
roleplay_gangs_turfs rpgt on rpg.id = rpgt.gang_id
GROUP BY
rpg.name,
u.username
ORDER BY gCount

关于mysql - 如何连接两个表并按第三个表排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35493398/

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