У меня есть таблица под названием «страны» связаны с «сетями» еще одна таблица с отношения многие ко многим:SQL SELECT, используя в(), но исключая другие
countries countries_networks networks
+-------------+----------+ +-------------+----------+ +-------------+---------------+
| Field | Type | | Field | Type | | Field | Type |
+-------------+----------+ +-------------+----------+ +-------------+---------------+
| id | int(11) | | id | int(11) | | id | int(11) |
| countryName | char(35) | | country_id | int(11) | | name | varchar(100) |
+-------------+----------+ | network_id | int(11) | | description | varchar(255) |
Чтобы получить все страны, которые имеют NETWORK_ID из 6 & 7, я просто сделать следующее: (. Я мог бы пойти дальше использовать networks.name, но я знаю, что countries_networks.network_id так что я просто использовать те, чтобы уменьшить SQL)
SELECT DISTINCT countryName
FROM countries AS Country
INNER JOIN countries_networks AS n ON Country.id = n.country_id
WHERE n.network_id IN (6,7)
Это хорошо, но Затем я хочу получить страны с network_id ТОЛЬКО 8, а другие нет.
Я попробовал следующие, но все еще возвращающиеся сети с 6 & 7 дюймов. Это как-то связано с моей JOIN?
SELECT DISTINCT countryName
FROM countries AS Country
INNER JOIN countries_networks AS n ON Country.id = n.country_id
WHERE n.network_id IN (8)
AND n.network_id not IN(6,7)
Спасибо.
... это то, что я написал 5 или 6 минут назад. –