我在MySQL數據庫中有兩個表。第一個有一個部門名稱列表。如何基於mysql中的另一個表來統計一個表中的行
departments
abbreviation | name
-------------|-------------
ACC | accounting
BUS | business
...
第二個表格包含一個名稱包含部門縮寫的課程列表。
courses
section | name
-------------|-------------
ACC-101-01 | Intro to Accounting
ACC-110-01 | More accounting
BUS-200-02 | Business etc.
...
我想編寫一個查詢,將,在departments
表的每一行,給我在courses
表中有多少行一樣的縮寫我有一個計數。下面這樣的:
我可以爲一個單獨的部門與查詢
SELECT COUNT(*) FROM courses WHERE section LIKE '%ACC%'
(gives me 2)
雖然我可以循環在PHP中做到這一點通過並執行上面的查詢多次,我寧願做它在一個單一的查詢。這是我正在考慮的僞代碼...
SELECT department.abbreviation, num FROM
for each row in departments
SELECT COUNT(*) AS num FROM classes WHERE section LIKE CONCAT('%',departments.abbreviation,'%)
任何想法?
+1 - 通過打敗我12秒:) –
它的工作原理!代碼量比我預期的要少很多。而且比我預期的時間要少很多。謝謝!! –