У меня есть три таблицы:и пересечение данных
пользователя
id | name
------------------
1 | Foo
2 | Bar
3 | Baz
group_type
id | name
------------------
1 | Group 1
2 | Group 2
3 | Group 3
4 | Group 4
5 | Group 5
user_group
id | user_id | group_type_id | [..]
------------------------------------
1 | 1 | 1 | [..]
2 | 1 | 3 | [..]
3 | 2 | 1 | [..]
4 | 1 | 5 | [..]
5 | 2 | 3 | [..]
6 | 3 | 3 | [..]
Ну, в настоящее время, я могу найти всех пользователей из указанного списка групп wi го союза, который, как «или» пункт:
SELECT u.*
FROM user u,
user_group ug
WHERE ug.user_id = u.id
AND ug.group_type_id IN(1, 3, 5)
В РЕЗУЛЬТАТЕ:
id | name
------------------
1 | Foo
2 | Bar
3 | Baz
Теперь мне нужно пересекать Gorup, найти всех пользователей, которые имеют группы типа 1 и 3, в результате чего :
id | name
------------------
1 | Foo
2 | Bar
Я пробовал некоторые запросы, но не представляю себе способ сделать это правильно.
+1 @schizodactyl - избили меня примерно на 10 секунд :) Если бы я мог, я бы добавил еще +1 для присоединения ANSI. –
Я понял! Спасибо! –