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?

questionAnswers(4)

yourAnswerToTheQuestion