0
colors
という名前のテーブルが1つあり、他のテーブルの日付に基づいて毎年固有の色の数が返されるクエリを作成する必要があります。programs
それは次のようになります。私はこれを試してみました結合テーブルから年単位でデータを照会
colors
+----+----------+
| id | name |
+----+----------+
| 1 | blue |
| 2 | yellow |
+----+----------+
programs
+----+------------+
| id | date |
+----+------------+
| 1 | 2016-01-08 |
| 2 | 2016-02-08 |
| 3 | 2017-02-08 |
+----+------------+
programs_colors
+------------+----------+
| program_id | color_id |
+------------+----------+
| 1 | 1 |
| 1 | 1 |
| 2 | 2 |
| 2 | 1 |
| 3 | 1 |
| 3 | 1 |
+------------+----------+
:
SELECT min(date), count(*) FROM (
SELECT min(date) AS date FROM programs_colors INNER JOIN programs ON programs.id = program_id GROUP BY color_id
) AS a GROUP BY year(date)
min(date): count(*):
2016-01-08 2
2017-01-08 0
しかし、全体としての私の色上記のクエリグループが、私は彼らが予想される毎年
でグループ化された必要結果:
min(date): count(*):
2016-01-08 2
2017-01-08 1
私の質問が意味をなさないことを願って