Apropos: Abfrage funktioniert als Unterabfrage nicht mehr

Beitrag lesen

Okay, ich hab's gelöst.

Anstatt die Unterabfrage mit WHERE ... IN zu benutzen, habe ich sie jetzt einfach als Tabelle benutzt und gejoint:

SELECT meta_work.id, meta_work.title, meta_gallery.title AS headline  
FROM meta_work  
NATURAL JOIN (  
 (  
   SELECT MAX(id) AS id  
   FROM meta_work  
   WHERE (gallery = 5 AND id < 87) OR gallery < 5  
 ) UNION ALL  
 (  
   SELECT MIN(id)  
   FROM meta_work  
   WHERE (gallery = 5 AND id > 87) OR gallery > 5  
 )  
) AS selection  
LEFT JOIN meta_gallery ON gallery = meta_gallery.id

(Ich habe sowohl die äußere, als auch die Unterabfrage inzwischen geändert, die Semantik ist aber dieselbe. Und das Problem war es auch ...)

Ich frage mich allerdings weiterhin, warum MySQL diese Kombination aus WHERE ... IN und Unterabfarge mit UNION offenbar nicht mag.