Hallo!
Hmm, also mit Deinem Vorschlag mit dem SELECT AS tmp bin ich jetzt zwar zu einer Lösung gekommen, aber dass man das so machen sollte, glaube ich wieder weniger ... das ist ja grauenhaft:
SELECT distinct pc.model as model FROM pc WHERE pc.price >= (
SELECT MAX(tmp.price) FROM (
SELECT pc.price, pc.model FROM pc
UNION ALL
SELECT laptop.price, laptop.model FROM laptop
UNION ALL
SELECT printer.price, printer.model FROM printer
) AS tmp
)
UNION ALL
SELECT distinct laptop.model as model FROM laptop WHERE laptop.price >= (
SELECT MAX(tmp.price) FROM (
SELECT pc.price, pc.model FROM pc
UNION ALL
SELECT laptop.price, laptop.model FROM laptop
UNION ALL
SELECT printer.price, printer.model FROM printer
) AS tmp
)
UNION ALL
SELECT distinct printer.model as model FROM printer WHERE printer.price >= (
SELECT MAX(tmp.price) FROM (
SELECT pc.price, pc.model FROM pc
UNION ALL
SELECT laptop.price, laptop.model FROM laptop
UNION ALL
SELECT printer.price, printer.model FROM printer
) AS tmp
)
Es kommt zwar mit meinen Testdaten das Richtige heraus ... aber ich glaub', ich vergess das mal lieber ganz schnell wieder.
Grüße
BlueFish