Rolf b: UNION in IN() als Teil einer WHERE-Klausel?

Beitrag lesen

Mit einem zusätzlichen Paar Klammern um den gesamten UNION-SELECT geht das auch (auch ohne Alias).

SELECT * FROM (
  (SELECT id FROM entries WHERE spam = 0 ORDER BY time DESC LIMIT 6)
    UNION
  (SELECT id FROM entries WHERE spam = 0 ORDER BY edited DESC LIMIT 6)
)

Unter mysql 5.6 will er hinter der letzten Klammer auch bei mir einen Aliasnamen haben! Sehr merkwürdig, das würde ich als einen unnötig erbrechenden Change sehen.

Warum unter 5.7 Klammern um die ge-UNION-ten Selects nötig sind, ist mir nicht ganz einsichtig. Aber wenn Larry es so haben will, dann neigen wir demütig unser Haupt vor dem Orakel und sagen "Sehr wohl, Oh Sohn der Elli".

Rolf