Рассмотрим следующее table1
user group comment
----------------------
1 a foo
2 a
3 a
4 b bar
5 c
6 c
7 d
8 d
9 d
10 d
11 e bax
12 e baz
Мне нужно сделать 2 запроса, каждый из которых возвращает группы:
- запрос 1: группы, в которых хотя бы 1 пользователь оставил комментарий
- запрос 2: группы, в которых ни один пользователь не оставил комментарий
результат запроса 1:
user group comment
----------------------
1 a foo
2 a
3 a
4 b bar
11 e bax
12 e baz
результат запроса 2:
user group comment
----------------------
5 c
6 c
7 d
8 d
9 d
Я попробовал следующее, но затем я увидел несколько одинаковых user
в обеих группах:
select *
from [table1] t1
where t1.[group] in (
select distinct [group] from [table] where [comment] <> ''
)
order by t1.[user] asc
select *
from [table1] t1
where t1.[group] in (
select distinct [group] from [table] where [comment] = ''
)
order by t1.[user] asc
Затем я понял, что это потому, что в одной группе, комментарий может быть установлен (comment <> ''
) И не установлен (comment = ''
), но я не знаю, как решить эту проблему в моих запросах.
Любая помощь будет принята с благодарностью.