2009-10-21 103 views
4

是否有可能根據相同日期加入兩個表,而不是時間因素?MySQL - 根據日期加入

喜歡的東西:

... FROM LEFT JOIN銷量約會 appointments.date = sales.date ...

唯一的問題是,它是一個日期時間字段,所以我想確保它只查看日期而忽略時間

+0

對您的問題進行同樣的討論 - https://stackoverflow.com/q/48590120/4050261 – 2018-02-02 21:05:43

回答

9

你可以這樣說:

FROM appointments 
LEFT JOIN sales ON DATE(appointments.date) = DATE(sales.date) 

但我敢肯定,這將不能夠使用索引,所以會很慢。

向每個表格添加日期列可能會更好。

0

ON子句接受任意的條件表達式,因此您可以在比較之前執行雙方的日期規範化,但它應該表示顯着的性能損失。

0

是的,但是您必須加入一個計算表達式,該表達式從日期時間列值中刪除時間。這將使查詢非優化搜索(它不能使用索引),所以它會生成一個表掃描...

我不知道在MySQL從datetime值剝離時的語法,但不管它是什麼,只寫

FROM appointments a 
     LEFT JOIN sales s 
     ON StripTime(s.date) = StripTime(a.date)