![]() |
SQL - Frage
Hey Leute,
da ich gelesen hab, dass ja auch ein paar weitere Informatiker unter euch weilen stell ich einfach mal ne Frage nach ner Query, die ich mit meiner bisherigen ERfahrung leider noch nicht erstellen kann :( Aaaalso ... ich habe folgende Tabelle: Code:
----------------------------------------name ist jetzt in dem beispiel eindeutig (in wirklichkeit ist das ein primärschlüssel einer anderen tabelle, tut hier ja aber nichts zur sache) ich hab schon ne lösung mit einer oder zwei (weiß ich grad nicht) inneren abfragen, aber die ist extrem lang und umständlich, aber es muss ja irgendwie besser gehen. ich denke, dass ich nicht drauf komme, liegt an meiner fehlenden erfahrung bezüglich group by und den aggregatfunktionen und jetzt leute, haut rein :wink: ich hab jetzt schon stundenlang rumgegrübelt, mir fällt aber nix ein ... danke schon mal |
hmm ... musst nen bisl probiern aber ich geb ma hier nen paar denkanstöße wies funktionieren könnte.
Evtl. unterstützt date die max funktion. Einfach wäre beispielsweise Code:
SELECT * FROM Tabelle coolere lösung auf die schnelle wüsst ich auch nich. ich denke du wirst es nicht mit einem nicht-verschalteltem statement hinbekommen. |
@jussen: wenn du schon verschachtelst dann kannste auch einfach in der inneren nen order by datum DESC limit 0,1 machen ...
|
Zitat:
Du stellst als Bedingung, dass der name = dem namen ist, dessen gueltig ab genauso groß wie das größte gueltig ab der tabelle ist. das heißt, du bekommst den ersten und den letzten datensatz zurück, da dort der name nr 1 ist, welcher an der vierten stelle den größten wert bei gueltig ab hat. ich hab jetzt meine lösung mal auf die beispieltabelle übertragen und schon sieht sie gar nicht mehr sooooo kompliziert aus. Code:
SELECT * FROM tbl_test as t1und da das innere SELECT ja für jede spalte einzeln nochmal ausgeführt wird, wird das bei ca 2000 datensätzen in einer, 5000 in der zweiten und (nur) 10 in der dritten bei nem 6-fach-join schon relativ umfangreich :( wenn jemand ne idee hat, wie ich das ohne dieseS (hier unproblematischen, in meinem fall aber relativ ungünstigen) innere SELECT lösen kann: her damit :wink: Danke EDIT: erm ... ist das order by und limit denn schneller als ein max (in meinem fall jetzt) ? |
| Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59:00 Uhr. |
Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2026, vBulletin Solutions, Inc.