UNION in einem Subquery

NBOne

Mitglied
Hallo,

ich habe ein sehr merkwürdiges Problem und bin am Verzweifeln...

Ich habe folgendes Query:


SELECT threads_1.dti_created AS newdate_created
FROM forum_threads AS threads_1
WHERE threads_1.threads_id = 16
UNION
SELECT entrys_2.dti_created AS newdate_created
FROM forum_entrys AS entrys_2
WHERE entrys_2.threads_id = 16
ORDER BY newdate_created DESC
LIMIT 1

In diesem Fall funktioniert es einwandfrei, es zeigt mir das neueste Datum an, was entweder in der threads oder der entrys Tabelle sein kann...in diesem Fall für den thread mit der threads_id 16.

Jetzt möchte ich das ganze aber in einen Subquery tun

SELECT ...., (SELECT threads_1.dti_created AS newdate_created
FROM forum_threads AS threads_1
WHERE threads_1.threads_id = forum_threads.threads_id
UNION
SELECT entrys_2.dti_created AS newdate_created
FROM forum_entrys AS entrys_2
WHERE entrys_2.threads_id = forum_threads.threads_id
ORDER BY newdate_created DESC
LIMIT 1) as new_date FROM forum_threads

ab dem Moment wo ich diese Abfrage in den SubQuery tue wird nur noch der obere Teil ausgeführt, also die Abfrage nach UNION ignoriert mysql einfach, sortiert aber dann richtig...ich bekomme in oben aufgeführtem Fall also immer dti_created aus der threads Tabelle zurück, aber nicht die Einträge aus der entrys Tabelle. Wenn ich das einfach umdrehe:

SELECT ...., (SELECT entrys_2.dti_created AS newdate_created
FROM forum_entrys AS entrys_2
WHERE entrys_2.threads_id = forum_threads.threads_id
UNION
SELECT threads_1.dti_created AS newdate_created
FROM forum_threads AS threads_1
WHERE threads_1.threads_id = forum_threads.threads_id
ORDER BY newdate_created DESC
LIMIT 1) as new_date FROM forum_threads

Bekomme ich nur die entrys zurück.

Ich bin am verzweifeln, woran kann das liegen. Unterstützt MySQL Union in Subquerys überhaupt richtig?

Gruß und danke für eure Hilfe,

NBOne
 
Zurück