Sqlite 如何查询一个表中的值在其他表中是否有对应的条目

Sqlite 如何查询一个表中的值在其他表中是否有对应的条目,sqlite,Sqlite,我正在尝试编写一个查询,该查询将检查一个表中的值是否在其他表中有任何对应的条目。我有以下方法,但有没有更快的方法?也许使用exists()函数 为了澄清,这将在sqlite中进行。此外,我需要制造商中每一行的值,以及它是否在任何其他表中有条目 select tM.val, min(t1.val) as MakesCars, min(t2.val) as MakesTrucks, min(t3.val) as MakesVans from tableManufactures tM left

我正在尝试编写一个查询,该查询将检查一个表中的值是否在其他表中有任何对应的条目。我有以下方法,但有没有更快的方法?也许使用exists()函数

为了澄清,这将在sqlite中进行。此外,我需要制造商中每一行的值,以及它是否在任何其他表中有条目

select tM.val, min(t1.val) as MakesCars, min(t2.val)  as MakesTrucks,
 min(t3.val) as MakesVans  from tableManufactures tM 
left join tableCars t1 on tM.id = t1.Manid
left join tableTrucks t2 on tM.id = t2.Manid
left join tableVans t3 on tM.id = t3.Manid
group by tM.val
order by tM.val
结果如下所示:

Manufacturer  MakesCars  MakesTrucks  MakesVans
Ford          85         15           20
Chevy         72         12           NULL
Mazda         42         NULL         NULL

因此,任何值都表示它们确实这样做了,null表示它们没有这样做

对于连接,数据库必须查找所有匹配的记录,其中大部分记录由于min()而被删除

使用EXISTS确实可能更有效:

SELECT val,
       EXISTS (SELECT 1
               FROM tableCars
               WHERE Manid = tM.id) AS MakesCars,
       EXISTS (SELECT 1
               FROM tableTrucks
               WHERE Manid = tM.id) AS MakesTrucks,
       EXISTS (SELECT 1
               FROM tableVans
               WHERE Manid = tM.id) AS MakesVans
FROM tableManufactures AS tM
ORDER BY val

这是什么RDBMS??您需要仅存在于所有三个表和tableManufactures中的值,还是存在于tableManufactures和三个表中的任何一个表中的值?