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

Beitrag lesen

Tach!

Hast du mal die Klammern um die Einzel-Selects weggelassen?

Nein. Da die einzelnen zum UNION gehörenden SELECTs jeweils ihre eigenen ORDER BY edited DESC LIMIT 6 haben, sollen sie laut der MySQL-Doku geklammert werden, damit die letzen Bedingungen nicht auf den gesamten UNION angewandt werden. Also habe ich es nicht anders probiert.

Gut, dann wird es wohl so sein, dass du noch ein Klammernpaar um die gesamte Subquery brauchst. Subquerys brauchen immer eine Klammerung, auch wenn bereits Klammern (zum Beispiel die vom IN()) vorhanden sind.

Ich vermute, dass MySQL aufgrund der öffnenden Klammer eine Subquery erwartet. Und die endent nach der ), woraufhin Syntax folgt, die in einem IN() falsch ist.

Hmm. Klammer auf vom IN, Klammer auf des ersten SELECT,

Begin der Subquery

Klammer zu des ersten SELECT,

Ende der Subquery

UNION,

Nicht mehr Teil der Subquery → Fehler.

dedlfix.