是否可以根据相同的日期加入两个表,而不是考虑时间因素?

类似的东西:

  

... FROM约会LEFT JOIN销售ON   appointmentments.date = sales.date ...

唯一的问题是它是一个日期时间字段,所以我想确保它只查看日期并忽略时间

有帮助吗?

解决方案

你可以这样做:

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

但我很确定它无法使用索引,所以会很慢。

您可能最好为每个表添加日期列。

其他提示

ON子句接受任意条件表达式,因此您可以在比较之前在双方执行日期规范化,但它应该代表显着的性能损失。

是的,但您必须加入计算表达式,从日期时间列值中删除时间。这将使查询非SARGable(它不能使用索引),因此它将生成表扫描...

我不知道mysql中的语法从日期时间值中剥离时间,但不管它是什么,只需写一下

   FROM appointments a 
      LEFT JOIN sales s 
         ON StripTime(s.date) = StripTime(a.date)
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top