логическая логика на нескольких строках таблицы SQL - PullRequest
0 голосов
/ 23 июля 2011

предположим, у меня есть следующие данные:

id  name  source
-----------------
1   'n'   'a'
1   'n'   'b'
1   'n'   'c'
1   'n'   'd'    
2   'n'   'a'
2   'n'   'c'

Как выбрать все идентификаторы, которые содержат (source == a || source == f) && (source == c || source ==г)?

Это для MySQL ...

Ответы [ 2 ]

1 голос
/ 23 июля 2011
select unique id from table as t1
where (t1.source = 'a' or t1.source='f')
  and exists 
   (select * from table as t2
    where t2.id = t1.id and (t2.source = 'c' or t2.source='g')
    )
0 голосов
/ 23 июля 2011

( edit : исправлено)

select id
from
    (select id
    from table
    where source = 'a' or source = 'f'
    group by id) as t1
join
    (select id
    from table
    where source = 'c' or source = 'g'
    group by id) as t2
using (id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...