我有各種表格跟蹤系統,銷售,客戶賬戶等內創建的東西,並且他們都創建了它們的時間。我可以總結上一按每天使用以下查詢其中任何一項:MySQL - 按日計算多個表格
select date(created_time), count(*) from customers group by date(created_time)
將會產生類似的輸出:
+--------------------+----------+
| date(created_time) | count(*) |
+--------------------+----------+
| 2012-10-12 | 15 |
| 2012-10-13 | 4 |
那幹得雖然它跳過天的工作,當什麼也沒發生。
但是我想要做的是什麼產生一次爲多個表同樣的事情,產生類似:
+--------------------+--------------+------------------+
| date(created_time) | count(sales) | count(customers) |
+--------------------+--------------+------------------+
| 2012-10-12 | 15 | 1 |
| 2012-10-13 | 4 | 3 |
我可以爲每個表單獨運行查詢和手工加入他們的行列,但跳過0天會使連接變得困難。
有沒有一種方法可以在單個mysql查詢中做到這一點?
是否所有的表都具有相同的結構?您能否在日期(created_time)上執行外部聯接:從客戶a.date(created_time)= b的外部聯接銷售b中選擇a.date(created_time),a.count(*),b.count(*)。 date(created_time)group by a.date(created_time),b.date(created_time)。注意:像這樣使用這個date()函數將使SLOW查詢成爲可能。你有多少數據? – Melanie
它們都有created_time列,否則它們是完全不同的。最大的是17萬行,增長速度很快。 –
我不是一個查詢效率的專家,但我知道使用date()函數,因爲我建議上面會導致減速。也許有人可以評論使用計算列來存儲日期的功效? – Melanie