2013-04-04 74 views
0

我有一個問題是如何做出正確的SQL語句,因爲我不知道如何開始;-(SQL計數()超過2表由類型

有以下兩個表:

表1:測試

id|name|type 
------------- 
1|FirstUnit|1 
2|FirstWeb|2 
3|SecondUnit|1 

表2:類型

id|type 
-------- 
1|UnitTest 
2|WebTest 

我希望得到以下結果:

表結果:

type|amount 
----------- 
UnitTest|2 
WebTest|1 

任何人都可以用給出提示幫助如何開始?

在此先感謝。 LStrike

回答

1

你可以試試這個查詢:

SELECT 
    t.type , 
    COUNT(*) AS amount 
FROM types AS t 
    JOIN test AS te ON t.id= te.type 
GROUP BY type 
ORDER BY t.type 
+0

哇,這很快,謝謝。 – LStrike 2013-04-04 09:55:10

+0

任何時候:)我們的目的是儘快給你正確的答案 – veljasije 2013-04-04 09:56:27

2
SELECT a.type, COUNT(b.type) amount 
FROM types a 
     LEFT JOIN test b 
      ON a.ID = b.type 
GROUP BY a.type 
ORDER BY amount DESC 

爲了進一步獲得更多的知識有關加入,請訪問以下鏈接:

+0

謝謝你的回答快和鏈接,閱讀它。不能標記爲正確和正常工作;-( – LStrike 2013-04-04 09:55:40

+1

您接受的答案的問題是它不會顯示在測試表上沒有記錄的類型,例如http://www.sqlfiddle.com/#!2/ dc7e37/1 – 2013-04-04 10:52:43

0

這裏是解決方案: -

SELECT types.type, COUNT(test.type) as amount from types,test where test.type=types.id 
GROUP BY test.type 
ORDER BY amount