Interne Bedingung?
Saul
- datenbank
Tagchen
Ich habe diese Frage ein Stück weiter unten bereits einmal gestellt, aber ich glaube das war etwas zu kompliziert.
Ich versuche es deshalb nochmal einfacher darzustellen:
Wenn ich abfrage
SELECT MAX(ID) FROM tabelle WHERE group_id='2'
Wie kann ich dann gleich in dieser Abfrage noch andere Spalten, die in der Zeile von MAX(ID) stehe, auslesen?
Frage ich direkt
SELECT name, MAX(ID) FROM tabelle WHERE group_id='2'
bekomme ich die Fehlermeldung, dass ich auch GROUP BY verwenden muss.
Und direkt im WHERE zu schreiben ID=MAX(ID) geht sowieso nicht.
Aber zuerst MAX(ID) auszulesen und dann in eienr 2. Abfrage nochmal die Daten, die bei MAX(ID) stehen, abzufragen kommt mir so umständlich vor.
Ja so geht es versuch es so....
Select name, MAX(id) From tabelle where group_id ='2' order by name
Du musst dem Rechner schon sagen wo nach er sortieren soll.
Du kannst aber auch
Select rowid, name, MAX(id) from tabelle where group_id='2'
ausführen dann wird eine Liste ROWId erzeigt nach der gruppiert wird.
Wenn Du kein indiziertes Feld in der Suche hast -> alles vor from
weiss die Datenbank nicht woran sie die Datensätze sortieren soll.
rowid ist meins wissens nach nicht über all verfügbar.
Ausserdem kannst Du nur group by auf die Spalten ausführen, welche im suchkriterium liegen anwenden. -> alles vor from und nach select.
Ich hoffe das hat dir nun geholfen.
Sorry das angeführte group by war als order by gemeint...
Nach dem wird sortiert und das sollte die Datenbank wissen, sofern du keine indizierte Tabelle auflistest.