У меня проблема с исключением элементов в моем запросе MySQL.Я хочу получить всех животных, которые не имеют отношения к «Азии», например:
Мои таблицы выглядят так.
Table 'animals'
+----+--------------+
| id | name |
+----+--------------+
| 1 | Tiger |
| 2 | Lion |
| 3 | Spider |
| 4 | Bird |
+----+--------------+
Стол 'континент'
+----+--------------+
| id | name |
+----+--------------+
| 1 | Europe |
| 2 | Asia |
| 3 | Africa |
+----+--------------+
Стол'Relations'
+----+--------+-----------+
| id | animal | continent |
+----+--------+-----------+
| 1 | 1 | 1 |
| 2 | 2 | 1 |
| 3 | 2 | 2 |
| 4 | 2 | 3 |
| 5 | 3 | 3 |
| 6 | 4 | 2 |
+----+--------+-----------+
Вот так выглядит мой запрос:
SELECT a.`id`,
a.`name`
FROM a.`animals` AS a
LEFT JOIN `relations` AS r
ON r.`animal` = a.`id`
WHERE r.`continent` != 2
ORDER BY a.`name` asc;
Проблема в том, что это дает мне следующий результат:
Lion
Spider
Tiger
Дело в том, что «Лев» имеет отношение к континенту Азия (ID 2) и не должен быть в результатах.Не могли бы вы помочь мне решить эту проблему?