[英]Inner Joining with two tables
我需要一些幫助來設置查詢。 我只是試圖通過將這兩個表(氏族)連接在一起來訪問處於同一“氏族”中的人數。 每個用戶都有一個列'clan',與表氏族的'roomOwner'列相同,然后我試圖獲取表氏族的信息以及成員數量,因此就像: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;
雖然它只顯示一個氏族。 有什么幫助嗎?
您的查詢沒有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
您忘記了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。
也許這會有所幫助:從氏族中選擇c。*,count(links.id)作為成員c左加入用戶u在c.roomOwner = u,clan按u.clan按成員順序排序
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.