Давайте представим, что у нас есть две таблицы: PARENT (id
INT) и CHILD (parent_id
INT, priority
INT)
У нас есть 3 родителя и их дети:
Parent_1 (id: 1) с Child_1 (приоритет: 1)
Parent_2 (id: 2) с Child_2 (приоритет: ноль)
Parent_3 (id: 3) с Child_3 (priority: 1) и Child_4 (priority: null)
Я пытался использовать этот SQL:
SELECT `parents`.* FROM `parents` LEFT OUTER JOIN `childs` ON `childs`.`parent_id` = `parent`.`id` WHERE `parents`.`id` IN (1, 2, 3) AND (childs.priority != 1 OR childs.priority IS NULL)
Поэтому я ожидаю, что результат выберет Parent_2 только потому, что проверкадля childs.priority != 1
применяется здесь и проверка childs.priority IS NULL
применяется также и здесь, но она также выводит Parent_3, потому что Child_4 проходит проверку childs.priority IS NULL
, но она не должна отображаться, потому что Child_3 не проходит childs.priority != 1
эта проверка