我有一个SQL表来存储旅行书籍。该表包含(以及其他)以下字段:
'trip_id' int(10) --> Foreign key to trip table
'departure_id' int(10) --> Foreign key to departure table
'book_category_id' int(10) --> Foreign key to type_of_book table
'customer_id' int(10) --> Foreign key to customer table
书籍由旅行和出发定义,并且包含在一个类别中。我需要计算每个类别有多少本书。
在以下示例中
trip_id departure_id book_category_id customer_id
------- ------------ ---------------- -----------
1 1 1 1
1 2 2 2
2 1 1 3
1 1 2 4
2 1 1 5
总共会有5本书:
我尝试过运行以下查询:
SELECT `books`.`trip_id`, `books`.`departure_id`, COUNT(*) AS total_books
FROM (`books`)
GROUP BY `books`.`departure_id`
而且,很明显,我每次旅行都会得到总书数:
trip_id departure_id total_books
------- ------------ -----------
1 1 2
1 2 1
2 1 2
我如何获得一个列显示第1类的总书籍,另一列显示第2类的总书籍?
trip_id departure_id total_books_category_1 total_books_category_2
------- ------------ ---------------------- ----------------------
1 1 1 1
1 2 0 1
2 1 0 2
提前致谢:)