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?

questionAnswers(2)

yourAnswerToTheQuestion