У меня не так в БД, и у меня возникла следующая проблема при работе с запросом MySql , для которого требуется условие IF в статистике WHERE .
Мне нужно это условие ЕСЛИ, потому что базовый стат должен отличаться от идентификатора страны, полученного самим запросом. Я пытаюсь объяснить вам, что мне нужно в деталях.
Это мой запрос (который не работает):
SELECT
LCZ1.id AS localization_id,
LCZ1.description AS localization_description,
CNT.id AS country_id,
CNT.country_name AS country_name,
CNT.isActive AS country_is_active,
RGN.id AS region_id,
RGN.region_name AS region_name,
PRV.id AS province_id,
PRV.province_name AS province_name,
DST.id AS district_id,
DST.district_name AS district_name,
SCT.id AS sector_id,
SCT.sector_name AS sector_name
FROM Localization AS LCZ1
LEFT JOIN Country AS CNT
ON LCZ1.country_id = CNT.id
LEFT JOIN Region AS RGN
ON LCZ1.region_id = RGN.id
LEFT JOIN Province AS PRV
ON LCZ1.province_id = PRV.id
LEFT JOIN District AS DST
ON LCZ1.district_id = DST.id
LEFT JOIN Sector AS SCT
ON LCZ1.sector_id = SCT.id
WHERE
(LCZ1.country_id = (SELECT LCZ2.country_id FROM Localization AS LCZ2 WHERE LCZ2.id = 5))
IF(LCZ1.country_id = 1)
BEGIN
AND
LCZ1.country_id is not null
END
IF(LCZ1.country_id = 2)
BEGIN
AND
LCZ1.country_id is not null
END
Как видите, условие WHERE начинается с этого:
WHERE
(LCZ1.country_id = (SELECT LCZ2.country_id FROM Localization AS LCZ2 WHERE LCZ2.id = 5))
В основном я выбираю значение LCZ1.country_id , выполняя второй запрос на выборку, работающий по localizations_id. Я указываю локализацию, получая ее country_id, который используется в качестве значения условия where. Работает нормально.
Затем мне нужно использовать это восстановленное значение, чтобы добавить условие AND к моему условию WHERE . country_id может быть только 1 или 2.
Итак,
, если извлеченное значение country_id равно 1 -> добавить условие AND.
, если полученное значение country_id равно 2 -> добавить еще одно условие ADD.
Как я могу исправить свой запрос и правильно обработать эту ситуацию?