Ilja: MIN von mehreren Tabellen

Beitrag lesen

yo,

deine version von mysql schließt schon mal unterabfragen aus. insofern hört sich der weg über joins doch recht gut an. es gibt bei mysql eine nützliche funktion die heißt LEAST und gibt dir den kleinsten wert mehrerer argumente zurück. die kannst du verwenden, wobei du darauf achten musst, dass bei nur einem NULL argument die funktion NULL zurückgibt, besonders da du OUTER JOINS bildest. dies kannst du umgehen, indem du wiederrum eine weitere Funktion einsetzt, die NULL in einen für dich beliebigen wert konvertiert, zum beispiel 0. ich weiss im moment nicht aus dem kopf, die diese funktion unter mysql heißt, einfach mal in der doku stöbern.

SELECT t1.*, t2.*, t3.*, t4.*, LEAST(t2_ek, t3_ek, t2_ek) AS Minwert, t1_ek - LEAST(t2_ek, t3_ek, t2_ek) AS Differenz
FROM t1
LEFT JOIN t2 ON t1.herstellernr = t2.herstlnr
LEFT JOIN t3 ON t1.herstellernr = t3.herstnr
LEFT JOIN t4 ON t1.herstellernr = t4.herstlnr

Ilja