我正在編寫一個用Laravel 5.2編寫的項目,該項目有兩個表,需要查詢這兩個表以生成按年創建的記錄數摘要。下面是該架構的簡化佈局與一些樣本數據:Laravel 5.2中的MySQL摘要查詢
事項表
id created_at
-----------------
1 2016-01-05 10:00:00
2 2016-03-09 11:00:00
3 2017-01-03 10:00:00
4 2015-05-06 11:00:00
說明表
id created_at
-----------------
1 2015-07-08 10:00:00
2 2016-03-16 11:00:00
3 2017-09-03 10:00:00
4 2017-11-06 11:00:00
每個表都有幾十萬條記錄,所以我想成爲能夠(有效地)查詢我的數據以產生以下結果,每個表的計數按年份計算:
year matters notes
----------------------------
2015 1 1
2016 2 1
2017 1 2
我需要每列可排序。目前,我能想到的做到這一點,最快的方法就是有兩個查詢,如以下內容,然後通過PHP結合兩種結果:
SELECT YEAR(matters.created_at) AS 'year', COUNT(1) AS 'matters'
FROM matters
GROUP BY YEAR(matters.created_at)
SELECT YEAR(notes.created_at) AS 'year', COUNT(1) AS 'notes'
FROM notes
GROUP BY YEAR(notes.created_at)
但我不知道是否有更好的方法,特別是因爲我必須根據用戶的需求對每列進行排序。
有什麼想法?
謝謝!這正是我所期待的。我忘記了你可以加入格式化爲一年的日期。謝謝! – BakerStreetSystems