匹配不同表中的行-mysql

ui7jx7zq  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(265)

我有以下列的表:
table
卫生,卫生2

批准的身份证
我想找到出现在这两个表中的行。因此,对于每一列,行必须具有相同的valeu。我尝试了以下代码。但它不起作用。

select sube, id_pes, approved from sanit 
    where  sube in (select sube from sanit2) and 
           id_pes in (select id_pes from sanit2) and 
           approved in (select approved from sanit2);

一旦我知道两个表中出现的所有行,我将使用这些行创建一个新表。

u91tlkcl

u91tlkcl1#

我想你需要一个子查询。在mysql中,您可以使用 in :

select sube, id_pes, approved
from sanit 
where (sube, id_pes, approved) in (select sube, id_pes, approved from sanit2);

请注意 NULL 值将无法进行比较。

41ik7eoe

41ik7eoe2#

SELECT sube, id_pes, approved
FROM sanit 
WHERE EXISTS ( SELECT NULL
               FROM sanit2
               WHERE sanit.sube <=> sanit2.sube
                 AND sanit.id_pes <=> sanit2.id_pes
                 AND sanit.approved <=> sanit2.approved );

即使某些列为空,此查询也将返回所有匹配的行。

相关问题