Hallo
Leider hat weder der Tip, den gesamten UNION-SELECT innerhalb
IN()
einzuklammern, noch der, denUNION
selbst noch einmal zu selektieren, funktioniert. MySQL meldet weiterhin, wie im OP gezeigt, einen Syntaxfehler.Muss es unbedingt eine einzelne Monster-Query sein, oder kannst du das Union-Ergebnis erstmal in einer temporären Tabelle ablegen und diese dann nutzen?
Nein, eine Zwischenlagerung fällt aus, aber mit einem INNER JOIN auf die Tabelle selbst komme ich natürlich mit dem Feld „id“ als Ergebnis des UNION aus. Besser?
SELECT
ent1.id,
ent2.user_id,
ent2.name,
udat.user_name,
ent2.time,
ent2.subject,
ent2.category
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))
AS ent1
INNER JOIN entries AS ent2
ON ent1.id = entries.id)
LEFT JOIN userdata AS udat
ON udat.user_id = entries.user_id
ORDER BY ent2.time DESC
LIMIT 6
Tschö, Auge
--
Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
Toller Dampf voraus von Terry Pratchett
Wenn man ausreichende Vorsichtsmaßnahmen trifft, muss man keine Vorsichtsmaßnahmen mehr treffen.
Toller Dampf voraus von Terry Pratchett