Проблема с запросом выбора Oracle - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть 2 таблицы. В таблице A есть только один столбец с именем ID, в котором есть список идентификаторов 1, 2 .... n Таблица B имеет 3 столбца: ID (ссылка на столбец ID в таблице A); ключ, значение Таким образом, таблица B выглядит следующим образом:

ID  KEY VALUE
1   x   true
1   y   false
1   z   true
2   x   false
2   y   false
2   z   false

.. ..... Таким образом, каждый идентификатор из таблицы A имеет 3 записи в таблице B Мне нужен запрос, который выбирает все идентификаторы из таблицы A, в которых x, y и z помечены как ложные в таблице B. Поэтому, если любой из x, y, z является истинным для определенного идентификатора, мы не выбираем его. Я пробовал это, но это неправильно:

select A.id from A,B where A.id = B.id and B.key in ('x','y','z') and B.value = 'false'

Не могли бы вы помочь мне с правильным вопросом?

Ответы [ 2 ]

1 голос
/ 29 декабря 2011

Почти там:

select A.id 
from A,B 
where A.id = B.id and B.key in ('x','y','z') and B.value = 'false'
group by A.id
having count(distinct B.key)=3
0 голосов
/ 29 декабря 2011
select id from a where a.id not in (select id from b where value = 'true') 

должен сделать трюк

Предполагается, что для каждого идентификатора есть запись x, y и z.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...