Проблема: я хотел бы обновить строки, которые не соответствуют левому соединению (или другому быстрому решению).
Начальная цель: обновить записи mytable1, которые имеют состояние = 0 и имеют (XOR!) Столбец «a», который соответствует mytable2, или столбец «b», который соответствует mytable2 («a» и «b» не должны совпадать!). Установите записи обеих таблиц в состояние = 5.
Я пытался (и не смог):
update mytable1 as t1
left join mytable2 as t2 on (t1.a=t2.a and t1.b=t2.b)
set t1.state=5,t2.state=5
where t1.state=0 and t2.state=0 and t2.a is null;
Как видите, я попытался объединить все записи, которые соответствуют ОБА значениям, чтобы я мог обновлять записи, которые не совпадают, а также обновлять строки, которые не совпадали в mytable2. Строки из mytable1 обновляются, но не из таблицы table2. Я мог бы обновить строки, которые соответствуют левому соединению, но это 99% строк, что, я думаю, было бы ударом по производительности (я задавал этот вопрос, поэтому мне никогда не удавалось сравнивать;).
Спасибо за ваше время.