У меня есть две таблицы:MySQL - выбор группы, имеющие значения, охватывающих множество
CREATE TABLE user (
user_id INT PRIMARY KEY,
...
);
CREATE TABLE action (
action_id INT PRIMARY KEY,
user_id INT FOREIGN KEY REFERENCES user(user_id),
action_type TINYINT,
...
);
Каждый раз, когда пользователь выполняет определенное действие, строка вставляется в action
таблице.
Теперь я хочу найти всех пользователей, выполнивших весь набор действий. Что-то вроде этого:
SELECT user_id
FROM user, action
HAVING SET(action_type) INTERSECT (0,3,4,5) = (0,3,4,5);
Но, конечно, я только что составил эту последнюю строку. Есть ли хороший способ сделать это в SQL?