连接表以在列中查找缺少的值

时间:2014-09-09 05:51:47

标签: sqlite

我有两个表,属性和注释。 (这是我们正在考虑评估潜在投资的批量清单。)在房产中,我有专栏' Idx'这是唯一的,Idx中的值用于标识其他表中的特定属性。

在评论中我有这些专栏:

LotIndex(与属性中的Idx相同) 名称 评分 评论

除了之前使用的评论表,我们都存储了我们的评论,我添加了一个用户,"自动,"所以我可以在很多方面对每个地段进行自动评分。现在,我已经拥有了这个,我希望我的评分程序能够通过查找 在名称中没有任何条目的属性='自动&# 39 ;. (我不在乎他们是否在注释中有条目,其中Name有其他值。)

我知道如果我想做的就是找到没有任何条目的属性而没有评级中的值,我可以这样做:

SELECT P.Idx FROM Properties as P LEFT JOIN Comments AS C WHERE P.Idx = C.LotIndex WHERE C.Rating = '' OR C.Rating = '0'

但是如何使用JOIN来查找P.Idx中的值列表,其中可能存在条目和名称,多个人的评论中的评分,当我想要的是P.Idx中的值列表时在名称为自动的评论中没有相应的条目?

1 个答案:

答案 0 :(得分:2)

这是correlated subquery的完美情况,例如:

SELECT P.Idx 
FROM Properties as P 
WHERE NOT EXISTS (
    SELECT 1 
    FROM Comments AS C 
    WHERE P.Idx = C.LotIndex AND C."name" = 'Auto');