首页 > 解决方案 > 用于比较和检查两个表的 PHP 查询

问题描述

我正在尝试从两个表中进行查询。第一个表是报价,第二个表是供应商。

offers table
id | supplier_id | updated_at (date field)
 1        3         18-05-2018
 2        1         01-01-2018

suppliers table
id   | name   | contact_email
 1     sujith   sujith@sujith.com
 2     naveen   naveen@naveen.com
 3     sanju    sanj@sanj.com

实际情况是,如果供应商在过去 2 个月内没有报价,则必须显示电子邮件地址列表。根据上面显示的表格数据,输出应为:

 sujith@sujith.com
 naveen@naveen.com

在过去 2 个月的表中,这两个电子邮件 ID 都没有报价。

我试过这个查询,但显示错误的数据:

   SELECT offers.id, offers.supplier_id, offers.updated_at
  suppliers.name, suppliers.contact_email FROM offers
  INNER JOIN suppliers ON offers.supplier_id = suppliers.id
  WHERE (offers.updated_at <= DATE_SUB(CURDATE(), INTERVAL 2 MONTH))

谁能帮我解决这个问题。

标签: phpmysql

解决方案


解决方案是这个查询:

SELECT suppliers.email 
FROM suppliers LEFT OUTER JOIN offers
ON offers.supplier_id = suppliers.id
WHERE offers.updated_at <= DATE_SUB(CURDATE(), INTERVAL 2 MONTH)
      OR offers.updated_at IS NULL;

您可以在此链接中检查构建模式和运行查询


推荐阅读