Я отлаживаю некоторый код и обнаружил следующий SQL-запрос (упрощенная версия):
SELECT ads.*, location.county
FROM ads
LEFT JOIN location ON location.county = ads.county_id
WHERE ads.published = 1
AND ads.type = 13
AND ads.county_id = 2
OR ads.county_id = 5
OR ads.county_id = 7
OR ads.county_id = 9
Я получаю очень странные результаты запроса, и я думаю, что это потому, что первое ИЛИ отрицает операторы AND, которые были найдены перед ним.
Это приводит к получению результатов для объявлений всех типов, а не только для типа 13.
Каждый раз, когда вызывается запрос, может быть различное количество объектов округа, которые необходимо найти.
Буду признателен за любую помощь в правильном подходе.