Я выполняю следующий запрос.
SELECT *
FROM exam, result
WHERE exam.home = result.external_id
AND exam.away != result.external_id;
Записи в таблице экзамен :
home away
51156 8
51158 7
51158 51182
Записи в результат таблица:
external_id
51156
51158
51182
В обычном сценарии должны быть получены первые две записи. Теперь, когда я использую '! =' Независимо, он выполняется без проблем. Значит, когда я выполню
SELECT * FROM exam, result WHERE exam.away != result.external_id
выполнено правильно. Это результат.
home away
51156 8
51158 7
Однако в моем вышеупомянутом ошибочном запросе вывод выглядит следующим образом:
id home away
111 51156 8
100 51158 7
123 51158 51182
Последняя строка считается, хотя она не должна учитываться. Кто-нибудь может сказать мне, почему? Или какая-нибудь альтернатива для запроса?