Hello! 欢迎来到小浪云!


如何使用 EXISTS 关键字检查两个表中是否存在对应值?


avatar
小浪云 2024-11-11 37

如何使用 EXISTS 关键字检查两个表中是否存在对应值?

如何使用 exists 关键字检查两个表中是否存在对应的值?

mysql 中,exists 关键字可用于检查两个表中是否存在对应的值。要使用 exists 关键字检查主表(第一张表)中是否存在子表(第二张表)中的内容,请按照以下步骤操作:

  1. 将子查询(第二张表)作为 exists 子句的参数。子查询应返回 true 或 false,具体取决于子表中是否存在与主表匹配的值。
  2. 在主查询中,使用 exists 子句检查子查询是否返回 true。如果子查询返回 true,则 exists 条件为 true,表明在主表中找到了匹配的值。

以下是您提供的查询的更正版本:

select * from (     select pn_Code, serialNumber from pnassertbasic_ruku pr left join pnassertruku pu on pr.parent_pnAssertRuku_id = pu.child_pnAssertRukuDetails_id where pn_Code is not null and serialNumber is not null and DATE(pr.create_time) = CURDATE() and pr.warehouseEntryNumber <> 'WEd3791f0b' ) as temp1 where EXISTS (     select * from (     select pn_Code, serialNumber from pnassertbasic_ruku pr left join pnassertruku pu on pr.parent_pnAssertRuku_id = pu.child_pnAssertRukuDetails_id where pu.child_pnAssertRukuDetails_id is null and pr.warehouseEntryNumber = 'WEd3791f0b'     ) as temp2     where temp1.pn_Code = temp2.pn_Code and temp1.serialNumber = temp2.serialNumber )
登录后复制

请注意,我修改了 exists 子句的子查询,以便检查主表和子表的 pn_code 和 serialnumber 匹配。

相关阅读