使用单个查询在SQLite中过滤选择

时间:2011-08-22 13:03:57

标签: sqlite select case

我需要像这样查询一个表:

select phrase_id
from direct_words 
where knowledge_id = X and dictionary_word_id = Y;

但我只想检索另一个表(top_words)中存在相同对(knowledge_id = X和dictionary_word_id = Y)的行。这可以通过应用查询来完成:

select top_id from top_words where knowledge_id = X and dictionary_word_id = Y;

对于第一个查询的每个返回结果,如果第二个查询的行数大于0,则拒绝。

这可以在SQLite的单个查询中完成吗?

2 个答案:

答案 0 :(得分:1)

左边连接为Andrey建议,或者......并且不存在(从TOP_WORDS中选择x,其中......)

答案 1 :(得分:0)

选择dw.phrase_id
来自direct_words dw
左外连接top_words tw on dw.phrase_id = tw.phrase_id
其中dw.knowledge_id = X和dw.dictionary_word_id = Y和tw.phrase_id为NULL