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

Mysql 如果没有记录,是否忽略内部联接?,mysql,symfony,doctrine-orm,Mysql,Symfony,Doctrine Orm,必须满足这两个要求: 选择状态为“等待”的产品 最后一封电子邮件必须在3天前发送 给出了以下表格和列: 产品:id、名称、状态\u id、通知 状态:id、名称 电子邮件日志:id、产品id、主题、文本、创建日期 我尝试了以下方法: SELECT product.id FROM product LEFT JOIN status ON product.status_id = status.id INNER JOIN emaill

必须满足这两个要求:

  • 选择状态为“等待”的产品
  • 最后一封电子邮件必须在3天前发送
给出了以下表格和列:

产品:id、名称、状态\u id、通知

状态:id、名称

电子邮件日志:id、产品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
选择
产品id
从…起
产品
左连接
product.status_id=status.id上的状态
内连接
emaillog ON product.id=emaillog.product\u id

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

您只需要进行第二个
连接
左连接也一样。还要注意,在
WHERE
子句中有
status\u id.term\u key
,但在querySee中没有名为
status\u id
的表