内部加入两个表

时间:2012-10-25 02:11:57

标签: php mysql join

我需要一些帮助来设置我的查询。我只是试图通过将这两个表连接起来来访问同一个“氏族”的人数,部落,用户。每个用户都有一个列'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;

虽然只显示了一个战队。有什么帮助吗?

3 个答案:

答案 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小组         会员订购