2010-03-27 103 views
5

請看看這個圖片MySQL的加入3個表和統計

alt text http://img249.imageshack.us/img249/6453/pic1v.jpg

這裏3個表,並出我要的是

從表1 工業流體從相同的UID 計數表3來自同一用戶的表2的fid

像樣本示例中的輸出將是2個記錄

感謝

+0

到目前爲止你做了什麼以及你目前的嘗試有什麼問題? – Yacoby 2010-03-27 14:12:53

+0

我嘗試了很多sql語句,但無法讓它們工作。 我嘗試加入,內喬恩等 我也在互聯網上搜索,但沒有得到任何答案。 – air 2010-03-27 14:21:46

回答

5

我看不出有任何的表1的關係下面是使用兩個表和分組由流體之間的內加入一個例子:

SELECT 
    t3.uid, 
    t3.industry, 
    count(t2.fid) 
FROM 
    table3 t3 
INNER JOIN 
    table2 t2 ON t3.uid = t2.uid 
GROUP BY 
    t3.uid 
+0

我同意這個答案,這裏沒有必要加入表1。你可以使用t3.uid和t2.uid來加入它們,並獲得所有需要的信息。 – Faisal 2010-03-27 14:32:08

+2

雖然通常我同意答案,但額外的JOIN可能會過濾掉UID不在Table1中的行。 此外,對於顯示的查詢是正確的,group by還應該包含't3.insdustry' – van 2010-03-27 14:36:11

4

試試這個:

SELECT table1.uid,table3.industry,COUNT(table2.fid) 
FROM table1 
INNER JOIN table3 ON table1.uid=table3.uid 
INNER JOIN table2 ON table1.uid=table2.uid 
GROUP BY table1.uid, table3.industry 

表1內部連接是無用的,但如果您需要檢索city或mem_no,則可能會有用; 在這種情況下,請記住在GROUP BY子句中也添加該字段。