mysqlで月名を選択する12行(毎月1行)を返し、指定された月のレコード数を返すクエリを作成する必要があります。私は2つのテーブル、months_tblとevents_tblを持っています。 events_tblの各レコードには、datetime列とcompany_id列があります。私は現在のようなものをやっているmysqlは毎月のレコード数を選択します
(私はまだWHEREのcompany_id句を持っていない注意してください):
SELECT months_tbl.month, COUNT(events_tbl.event_id) cnt
FROM months_tbl
LEFT JOIN events_tbl ON months_tbl.month_id = MONTH(events_tbl.appt_date_time)
GROUP BY months_tbl.month
ORDER BY months_tbl.month_id ASC;
これはカウントして、12行が選択されたものを私は期待してい(のようなものを返します。その月のイベント、またはゼロがない場合は0):
**month** **cnt**
January 0
February 0
March 0
April 0
May 0
June 0
July 0
August 88
September 99
October 120
November 0
December 9
ただし、会社に関係なくすべてのレコードが返されます。私は、クエリがそうでフィルタリングされることを確認する必要があり、私は、where句を追加しました:
**month** **cnt**
August 88
September 99
October 120
December 9
すべてのアイデアは、なぜ私はすべてを失っています:
SELECT months_tbl.month, COUNT(events_tbl.appt_id) cnt
FROM months_tbl
LEFT JOIN events_tbl ON months_tbl.month_id = MONTH(events_tbl.appt_date_time)
WHERE events_tbl.company_id = 1
GROUP BY months_tbl.month
ORDER BY months_tbl.month_id ASC;
は私が追加私の結果になるwhere句私は左の結合を使用していますが、Where句を追加すると、他の月のレコードですか?
である
注意私のソリューションはあなたを助けましたか? – arnoudhgz