是否可以根据相同的日期加入两个表,而不是考虑时间因素?
类似的东西:
... FROM约会LEFT JOIN销售ON appointmentments.date = sales.date ...
唯一的问题是它是一个日期时间字段,所以我想确保它只查看日期并忽略时间
答案 0 :(得分:9)
你可以这样做:
FROM appointments
LEFT JOIN sales ON DATE(appointments.date) = DATE(sales.date)
但我很确定它无法使用索引,所以会很慢。
您可能最好为每个表添加日期列。
答案 1 :(得分:0)
ON子句接受任意条件表达式,因此您可以在比较之前在双方执行日期规范化,但它应该代表显着的性能损失。
答案 2 :(得分:0)
是的,但您必须加入计算表达式,从日期时间列值中删除时间。这将使查询非SARGable(它不能使用索引),因此它将生成表扫描...
我不知道mysql中的语法从日期时间值中剥离时间,但不管它是什么,只需写一下
FROM appointments a
LEFT JOIN sales s
ON StripTime(s.date) = StripTime(a.date)