2012-10-25 177 views
0

我需要一些幫助來設置我的查詢。我只是試圖通過將這兩個表加入一起,部族,用戶來訪問同一'部族'中的人數。每個用戶都有一列「部落」,這是一樣的表家族的列「roomOwner」,然後我試圖讓表家族的信息與成員的數量以及因此這將是這樣的:房間,roomOwner,成員 所以基本上我擁有的是這樣的:內部連接兩張表

SELECT c.*, count(u.clan) AS members FROM clans c inner join users u WHERE c.roomOwner = u.clan ORDER BY members; 

它只顯示一個部族。請幫忙嗎?

回答

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

感謝我的最終的查詢是: '的選擇b。 *,COUNT(a.clan)totalCount,SUM(c.xp)totalXp FROM部族b LEFT JOIN用戶a ON a.clan = b.roomOwner LEFT JOIN skillsoverall c ON a.username LIKE c.playerName GROUP BY b.roomOwner ORDER BY'totalXp' DESC LIMIT 15' –

+0

高興地聽到:D –

+0

好吧,這是我的查詢,但我試圖爲每一個$ i我的等級號碼,但我所做的是有15個結果每一個結果: ''功能部族(){ \t $查詢=請求mysql_query(「選擇b *,COUNT(a.clan)TOTALCOUNT,SUM(c.xp)totalXp 從氏族b LEFT JOIN用戶。 ON a.clan = b.roomOwner LEFT JOIN skillsoverall c ON a.username LIKE c.playerName GROUP BY b.r​​oomOwner ORDER BY'totalXp' DESC LIMIT 15「)or die(mysql_error()); ($行= mysql_fetch_array($查詢)){ \t \t for($ i = 1; $ i <= $ rows; $ i ++){; \t \t \t echo $ i; \t \t} \t} }'我刪除了一些代碼,以便它適合此評論。 –

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 

而你需要LEFT JOIN存在的,而不是INNER如果你想看到所有部族的信息,甚至有0個用戶加入羣組。

0

或許這將幫助: 選擇C *,COUNT(links.id)從氏族成員 Ç 左連接用戶U ON c.roomOwner = U,氏族 組由u.clan 。爲了通過會員