PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lastUpdate über 2 Tabellen berücksichtigen



neogrande
14-09-2007, 13:51
Hallo Leute,

ich habe in meiner Anwendung 2 Objekte, die jeweils ein lastUpdate haben.
Der Nutzer weiß aber gar nicht, dass das intern 2 Objekte sind und bekommt jweils das größere von beiden angezeigt.
Hat er nun eine Tabelle, möchte ich die ab und an nach dem lastUpdate sortieren lassen. Ich bräuchte also so etwas in der Art wie

SELECT a.*
FROM tabelle1 as a
JOIN tabelle2 as b on (a.obj_id = b.id)
ORDER BY MAX(a.lastUpdate, b.lastUpdate)

Tja, und das geht leider nicht. MAX geht ja nur über eine Tabellenzeile und ist dadurch ziemlich sinnlos bei ORDER BY...

Hat jemand eine Idee?

Turbohummel
14-09-2007, 13:54
Interessant.
Funktionieren dürfte (ungetestet):


SELECT a.*, MAX(a.lastUpdate, b.lastUpdate) sort
FROM tabelle1 as a
JOIN tabelle2 as b on (a.obj_id = b.id)
ORDER BY sort

BLUESCREEN3D
14-09-2007, 15:31
SELECT a.*, MAX(a.lastUpdate, b.lastUpdate) sort
...
Mit GREATEST() statt MAX() dürfte es gehen.

neogrande
15-09-2007, 08:18
Unter MySQL funktionierts tatsächlich, mal schauen, was MS-SQL sagt (kann ich erst am Donnerstag testen)

Da muss ich zwar ein wenig mein Framework umgehen, aber danke erst mal.

Eine zweite Möglichkeit wäre (wahrscheinlich) noch ein View, der das das Maximum aus beiden in einer Spalte vereint und dann das ORDER BY auf die View zu legen...

Vielen Dank.