Jak liczyć wiersze w jednej tabeli na podstawie innej tabeli w mysql
Mam dwie tabele w bazie danych MySQL. Pierwszy ma listę nazw działów.
departments
abbreviation | name
-------------|-------------
ACC | accounting
BUS | business
...
Druga tabela zawiera listę kursów z nazwami zawierającymi skrót działu.
courses
section | name
-------------|-------------
ACC-101-01 | Intro to Accounting
ACC-110-01 | More accounting
BUS-200-02 | Business etc.
...
Chciałbym napisać zapytanie, które będzie, dla każdego wiersza wdepartments
tabeli, podaj mi liczbę wierszy wcourses
stół jest jak skrót, który mam. Coś takiego jak to:
abbreviation | num
-------------|--------------
ACC | 2
BUS | 1
...
Mogę to zrobić dla jednego działu z zapytaniem
SELECT COUNT(*) FROM courses WHERE section LIKE '%ACC%'
(gives me 2)
Chociaż mogłem przejść przez PHP i wykonać powyższe zapytanie wiele razy, wolałbym to zrobić w pojedynczym zapytaniu. To pseudokod, o którym myślę ...
SELECT department.abbreviation, num FROM
for each row in departments
SELECT COUNT(*) AS num FROM classes WHERE section LIKE CONCAT('%',departments.abbreviation,'%)
Jakieś pomysły?