Honny
21-05-2002, 11:37
Mit welchem Kommando kann ich einen Maximal-Wert aus drei verschiedenen Spalten, die jeweils aus drei unterschiedlichen Tabellen stammen, abfragen ???
| Zurück zum Forum |
|
Archiv verlassen und diese Seite im Standarddesign anzeigen : Honny 21-05-2002, 11:37 Mit welchem Kommando kann ich einen Maximal-Wert aus drei verschiedenen Spalten, die jeweils aus drei unterschiedlichen Tabellen stammen, abfragen ??? mkJack 21-05-2002, 12:28 Generell (für eine Tabelle) geht das so: SELECT MAX(spalte) FROM tabelle Honny 21-05-2002, 12:45 Tja, soweit war ich auch schon ! Aber ich muß ja mehrere Spalten abfragen ! Das ist ja gerade das Problem ! Kropff 21-05-2002, 13:13 generell geht das mit LEFT JOIN, und verschiedenen optionen (OUTER, NATURAL, USING). hängt aber von deiner datenbankstruktur ab. gruss peter Honny 21-05-2002, 15:24 Daß ich mehrere Tabellen mit left outer join verknüpfen kann, ist mir ebenso nicht unbekannt !!! Nur trifft das nicht den Kern meines Problems !!! Mir geht 's mehr um den select max() - Befehl !!! Wäre vielleicht das eine Lösung? select max(Spalte1,Spalte2,Spalte3) - Ich glaube kaum !!! Also, wer hat ne gescheite Lösung ??? goth 21-05-2002, 15:33 Original geschrieben von Honny Daß ich mehrere Tabellen mit left outer join verknüpfen kann, ist mir ebenso nicht unbekannt !!! Nur trifft das nicht den Kern meines Problems !!! Mir geht 's mehr um den select max() - Befehl !!! Wäre vielleicht das eine Lösung? select max(Spalte1,Spalte2,Spalte3) - Ich glaube kaum !!! Also, wer hat ne gescheite Lösung ??? Mit MySQL 4.0.x würde ich sagen: Mach's mit 'ner UNION (http://www.mysql.com/doc/U/N/UNION.html). Da MySQL 4.0.x noch selten ist würde ich mal was mit der Funktion IF() probieren ... allerdings weiss ich nicht ob's mit Aggregat-Funktionen zusammen geht: SELECT IF( (@max1:=MAX(spalte1))>(@max2:=MAX(spalte2)), IF( (@max3:=MAX(spalte2))>@max1, @max3, @max1) .... Genaugenommen würde ich allerdings die drei Maximalwerte abfragen und dann im Programm (PHP, C, C++, ... ) vergleichen, weil jeder Join im verhältniss dazu meistens unverhältnismässig lange dauert ... Die beste Lösung ist in dem Falle also 'ne 'Richtige Datenbank' :teach: |
- - |