Hi Experten,
ich habe hier folgenden Query.
Alles anzeigen
Das Problem ist, dass laut Doku "You cannot refer to a TEMPORARY table more than once in the same query." gilt, was ich mit den UNIONS aber tue. Kann man dieses Query so umschreiben, dass es das gleiche macht aber nicht mehrfach auf eine temporare Datenbank zugreifen muss?
Grüße,
EHW
ich habe hier folgenden Query.
Quellcode
- CREATE TEMPORARY TABLE preselection AS
- ( SELECT id, title, chapter, date2, date, snid, max(score) FROM `movies`
- WHERE ( cluster is not NULL ) AND ( `date` <= '2012-02-20 05:20:00'
- AND `date` > '2012-02-19 17:20:00'
- AND (TIMEDIFF(date, date2) < '12:00:00') )
- GROUP BY cluster )
- UNION
- ( SELECT id, title, chapter, date2, date, snid, score FROM `movies`
- WHERE cluster IS NULL
- AND ( `date` <= '2012-02-20 05:20:00'
- AND `date` > '2012-02-19 17:20:00'
- AND (TIMEDIFF(date, date2) < '12:00:00') ) );
- (SELECT * FROM preselection WHERE snid=1
- AND chapter LIKE '#A_OT%' DESC LIMIT 4)
- UNION … UNION
- (SELECT * FROM preselection WHERE snid=19
- AND chapter LIKE '#A_OT%' LIMIT 4)
- UNION ... for each chapter from A to J and every snid from 1 to 19 ... UNION
- (SELECT * FROM preselection WHERE snid=1
- AND chapter LIKE '#J_OT%' LIMIT 4)
- UNION … UNION
- (SELECT * FROM preselection WHERE snid=19
- AND chapter LIKE '#J_OT%' LIMIT 4)
- ORDER BY `score` DESC, `date`;
- [syntax="sql"][/syntax]
Das Problem ist, dass laut Doku "You cannot refer to a TEMPORARY table more than once in the same query." gilt, was ich mit den UNIONS aber tue. Kann man dieses Query so umschreiben, dass es das gleiche macht aber nicht mehrfach auf eine temporare Datenbank zugreifen muss?
Grüße,
EHW