我需要一些帮助来设置我的查询。我只是试图通过将这两个表连接起来来访问同一个“氏族”的人数,部落,用户。每个用户都有一个列'clan',它与table clan的列'roomOwner'相同,然后我试图得到table氏族的信息以及成员数量,所以它会是这样的:room,roomOwner,members 所以基本上我只有这个:
SELECT c.*, count(u.clan) AS members FROM clans c inner join users u WHERE c.roomOwner = u.clan ORDER BY members;
虽然只显示了一个战队。有什么帮助吗?
答案 0 :(得分:1)
您的查询没有GROUP BY
子句。而且我认为它只能归还单曲?此处需要LEFT JOIN
,因为clan
可能没有成员。
SELECT b.roomOwner, COUNT(a.clan) memberCount
FROM clan b
LEFT JOIN users a
ON a.clan = b.roomOwner
GROUP BY b.roomOwner
ORDER BY memberCount
答案 1 :(得分:0)
你忘记了GROUP BY。你在“氏族”表中有一些“id”栏吗?按“id”分组
SELECT c.*, count(u.clan) AS members
FROM clans c
inner join users u ON c.roomOwner = u.clan
GROUP BY clans.id
如果你想看到有关所有部落的信息,甚至有0个用户,你需要LEFT JOIN而不是INNER JOIN。
答案 2 :(得分:0)
也许这会有所帮助: 选择c。*,count(links.id)作为成员 来自氏族c 离开加入用户你在c.roomOwner = u,clan u.clan小组 会员订购