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

如何使用 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 匹配。

以上就是如何使用 EXISTS 关键字检查两个表中是否存在对应值?的详细内容,更多请关注其它相关文章!