MySQL DELETE FROM com subconsulta UNION por condição IN
Eu tropecei em um curioso erro de SQL. A última consulta não funciona. É claro que posso dividir esse DELETE em três consultas, mas eu realmente me pergunto por que o MySQL não me permite fazer isso dessa maneira.
Um pequeno exemplo:
(SELECT id FROM stairs WHERE building = 123)
UNION
(SELECT id FROM lift WHERE building = 123)
UNION
(SELECT id FROM qrcodeid WHERE building = 123)
trabalho!
DELETE FROM startpoint WHERE id IN (SELECT id FROM stairs WHERE building = 123)
funciona também!
Enquanto que
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)
)
levanta o erro
# 1064 - Você tem um erro na sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MySQL para a sintaxe correta para usar perto de 'UNION (SELECT id FROM levantar WHERE building = 123) UNION (ID SELECT FROM qrc' na linha 3
Alguém tem uma pista?