Я столкнулся с любопытной ошибкой SQL. Последний запрос не работает. Конечно, я могу просто разделить этот DELETE на три запроса, но мне действительно интересно, почему MySQL не позволяет мне так поступать.MySQL DELETE FROM с подзапросом UNION по условию IN
Небольшой пример:
(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 подъемником WHERE здание = 123) UNION (SELECT ID FROM QRC' в строке 3
Anyone ключ?
Спасибо, это работает ... И что не так с моими скобками? –
Здесь ваш [ответ] (http://www.w3schools.com/sql/sql_union.asp);) – rkpasia
Как вы можете видеть, нет скобок! – rkpasia