Я споткнулся на любопытной ошибке SQL. Последний запрос не работает. Конечно, я могу просто разделить это DELETE на три запроса, но мне действительно интересно, почему MySQL не позволяет мне сделать это таким образом.
Небольшой пример:
(SELECT id FROM stairs WHERE building = 123)
UNION
(SELECT id FROM lift WHERE building = 123)
UNION
(SELECT id FROM qrcodeid WHERE building = 123)
работает!
DELETE FROM startpoint WHERE id IN (SELECT id FROM stairs WHERE building = 123)
тоже работает!
Тогда как
DELETE FROM startpoint WHERE id IN (
(SELECT id FROM stairs WHERE building = 123)
UNION
(SELECT id FROM lift WHERE building = 123)
UNION
(SELECT id FROM qrcodeid WHERE building = 123)
)
вызывает ошибку
#1064 - У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «UNION (SELECT id FROM lift WHERE building = 123) UNION (SELECT id FROM qrc» в строке 3
Кто-нибудь знает?