yo,
SELECT * FROM Tmix AS T1
LEFT JOIN Name AS T2 ON (T1.zutat1 > 0 AND T2.id=T1.zutat1)
LEFT JOIN Name AS T3 ON (T1.zutat2 > 0 AND T3.id=T1.zutat2)
LEFT JOIN Name AS T4 ON (T1.zutat3 > 0 AND T4.id=T1.zutat3)
ein paar tipps, die AS klausel und die klammern der Join bedingungen würde ich mir sparen, machen es nicht wirklich übersichtlicher, sondern sind eher balast. auch der FROM klausel würde ich eine neue zeile spendieren. aber das ist eben geschmackssache.
Vor allem, gibt es eine Möglichkeit das bischen besser zu gestalten. Es gibt maximal 4 Zutaten. Die namen dafür stehen alle immer in der Tablle "Name".
grundsätzlich würde ich sagen, deine abfrage hat verbesserungspotential, die OUTER NON EQUI JOINS sind für ein dbms "unangenehm" und können doch recht viel arbeit bedeuten. um dir dabei aber konkrete hilfe geben zu können wäre es gut, wenn du uns ein wenig mehr infos zu deinen tabellen, den dateninhalten und die gewünschte ergebnismenge beispielhaft geben könntest. oftmals kommen komplizierte abfragen deswegen zustande, weil ein ungünstiges daten-design gewählt wurde.
Ilja