Это такой основной вопрос, но по какой-то причине все мои знания SQL только что вышли из здания.Три основных стола:
Table A
id | name
---------
1 | John
2 | Mike
3 | Henry
4 | Cooper
Table B
id | tag
---------
1 | chocolate
2 | ice cream
3 | cookies
и стол, который объединяет два:
Table C
id | name_id | tag_id
---------------------
1 | 1 | 2
2 | 1 | 3
3 | 2 | 1
4 | 3 | 2
5 | 3 | 3
Я хочу найти людей, которым нравятся ОБА шоколад и печенье.Следующее дает мне всех людей, которые любят шоколад и печенье, но мне нужны только люди, которым нравятся оба (шоколад И печенье вместо шоколада ИЛИ печенье).
SELECT name FROM tablea a JOIN tablec c ON a.id = c.name_id WHERE c.tag_id = 1 AND c.tag_id = 3 GROUP BY name
но это по сути то, что я хочу.Кроме того, я хотел бы сделать это, не задействуя tableb в JOIN, потому что там, где я использую это, будут объединяться различные другие таблицы, и я не хочу путать картинку.Это должно быть так просто!