如果没有记录,是否忽略内部联接



必须满足这两个要求:

  • 选择状态为"等待"的产品
  • 最后一封电子邮件必须在3天前发送

给出了以下表格和列:

产品:id,名称,状态id,通知

status:id,name

电子邮件日志:id,product_id,主题,文本,创建的日期

我尝试了以下方法:

SELECT 
product.id
FROM
product
LEFT JOIN
status ON product.status_id = status.id
INNER JOIN
emaillog ON product.id = emaillog.product_id
AND (emaillog.date_created <= '2018-11-04 16:32:49')
WHERE
(status.name = 'waiting' AND product.notification = 1)
GROUP BY emaillog.product_id

只有当emaillogs表中有记录时,这才有效。如果电子邮件日志表中没有记录,则应选择产品。

如果要在结果集中保留未连接的行,请使用LEFT JOIN而不是普通的内部JOIN。但是,请注意,在WHERE子句中提及左联接表中的列会将左联接转换为内部联接。

相关内容

  • 没有找到相关文章

最新更新