Фильтр выбора в SQLite с использованием одного запроса - PullRequest
0 голосов
/ 22 августа 2011

Мне нужно запросить таблицу следующим образом:

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

но я хочу получить только те строки, в которых одна и та же пара (Knowledge_id = X и dictionary_word_id = Y) не существует в другой таблице (top_words). Это можно сделать, применив запрос:

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

для каждого возвращенного результата первого запроса и отклонения, если во втором запросе число строк превышает 0.

Возможно ли это сделать в одном запросе к SQLite?

Ответы [ 2 ]

1 голос
/ 22 августа 2011

Либо присоединитесь, как предложил Андрей, либо ... И НЕ СУЩЕСТВУЕТ (выберите x из TOP_WORDS, где ....)

0 голосов
/ 22 августа 2011

выберите dw.phrase_id
из direct_words dw
левое внешнее объединение top_words tw на dw.phrase_id = tw.phrase_id
где dw.knowledge_id = X и dw.dictionary_word_id = Y и tw.phrase_id равен NULL

...