У меня есть куча статей
+-----------+-------+
| ArticleID | Name |
+-----------+-------+
| 1 | Bla |
| 2 | Blub |
| 3 | Test |
+-----------+-------+
И Prodcutgroups:
+-----------+--------------+
| ProductGroupID | Name |
+-----------+--------------+
| 4 | Group A |
| 5 | Group B |
| 6 | Group C |
+-----------+--------------+
И таблица ссылок (отношение M: N), которая связывает статьи с группами продуктов. Каждая статья может быть во многих товарных группах одновременно, но только один раз для каждой группы:
+-----------+----------------+
| ArticleID | ProductGroupID |
+-----------+----------------+
| 1 | 4 |
| 1 | 5 |
| 2 | 5 |
| 2 | 6 |
| 3 | 4 |
| 3 | 6 |
+-----------+----------------+
Моя проблема теперь в том, что мне нужен запрос, который позволяет мне найти статьи, которые ОТСУТСТВУЮТ в группе товаров. с идентификатором 4. Обычно я бы написал сценарий PHP, который просматривает всю таблицу, проверяет значения и запоминает, не был ли найден идентификатор группы товаров 4.
Но это кажется очень сложным и раздражающим, поскольку у меня такого рода сценарии чаще встречаются здесь и там.
Я не могу использовать WHERE ProductGroupID NOT IN (4), потому что, когда статья назначается ДРУГИМ группам продуктов, она обнаружит эти строки, и результат НЕ скажет мне, что статья находится в этой группе c или нет.
Результат нужно было бы дать только мне !! Идентификатор статьи: 2, поскольку его нет в группе продуктов с идентификатором 4
Я благодарен за любой полезный совет!