簡體   English   中英

內聯兩張桌子

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM