MySQL DELETE FROM mit UNION-Unterabfrage nach IN-Bedingung

Ich bin auf einen merkwürdigen SQL-Fehler gestoßen. Die letzte Abfrage funktioniert nicht. Natürlich kann ich dieses DELETE einfach in drei Abfragen aufteilen, aber ich frage mich wirklich, warum MySQL es nicht zulässt, dass ich es so mache.

Ein kleines Beispiel:

(SELECT id FROM stairs WHERE building = 123)
UNION
(SELECT id FROM lift WHERE building = 123)
UNION
(SELECT id FROM qrcodeid WHERE building = 123)

funktioniert!

DELETE FROM startpoint WHERE id IN (SELECT id FROM stairs WHERE building = 123)

funktioniert auch!

Wohingegen

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)
)

wirft den Fehler auf

# 1064 - Sie haben einen Fehler in Ihrer SQL-Syntax. In dem Handbuch, das Ihrer MySQL-Serverversion entspricht, finden Sie in Zeile 3 die richtige Syntax für UNION (SELECT ID FROM lift WHERE building = 123) UNION (SELECT ID FROM qrc)

Hat jemand eine Ahnung?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage