Hello,
Vllt. gibt es ja noch einen eleganteren Weg?
mehrere. Ich finde leider mein Posting zu deiner Ausgangsfrage nicht mehr, ich hatte dir dort neben UNION noch eine Lösung mit CASE vorgestellt, die deinen Bedürfnissen jetzt wahrscheinlich eher entsprechen würde.
bin leider noch nicht schlauer geworden. Wenn ich ein LIMIT innerhalb des UNION-Selects setze, verhindere ich aber, dass mir die Einträge nicht so ausgegeben werden wie gewünscht, oder?
jetzt musst du mir nochmal verraten was du möchtest - ich verstehe dich so, dass es diese "4 Kategorien" von Treffern gibt, die du mit einer gewissen Priorität selektieren möchtest. Über alle Treffer möchtest du eine Sortierung laufen lassen? Oder innerhalb der Gruppen? Am Ende sollen es maximal 100 Treffer werden?!
Was hindert dich daran, das LIMIT mit in die SELECTs zu setzen, du weißt, dass am Ende maximal 100 Treffer übrig bleiben, im Worst Case liefert also ein einzelnes Subselect alle 100 Treffer. Na gut, dann lass halt jedes Subselect selbst auch mit LIMIT 100 arbeiten. Das Ergebnis der 4 Unions sind dann maximal 400 Treffer, nach deinen Wünschen sortiert, von denen du dann per LIMIT 100 die ersten 100 herausgreifst.
(SELECT .. FROM .. ORDER BY ..LIMIT 100)
UNION
...
LIMIT 100
MfG
Rouven
-------------------
sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
Computer programming is tremendous fun. Like music, it is a skill that derives from an unknown blend of innate talent and constant practice. Like drawing, it can be shaped to a variety of ends: commercial, artistic, and pure entertainment. Programmers have a well-deserved reputation for working long hours but are rarely credited with being driven by creative fevers. Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination, but because their imagination reveals worlds that others cannot see. -- Larry OBrien and Bruce Eckel in Thinking in C#