dedlfix: LEFT JOIN Abfrage eventuell mit einer IF Abfrage ???

Beitrag lesen

Tach!

Wenn aber kein Gallerie Bild hinterlegt wurde, kommt auch keine Ausgabe, was ja richtig ist

Wie erweitere ich die Abfrage, so das er dann eines von der anderen Bilder nimmt?

Das Problem beim Join ist, dass beide Datenmengen erstmal vorliegen müssen, um sie dann anhand eines Kriteriums vereinen zu können. Wenn die eine Menge aber sozusagen nicht feststeht, sondern sich erst beim Verknüpfen herausstellt, dass man in einigen Fällen andere Daten haben möchte, dann ist das mit dem Join so einfach nicht zu lösen. Der hat keinen Mechanismus für eine solche Auswahl. Stattdessen musst du anderenorts ansetzen.

Eine Variante wäre, auf den Join zu verzichten und stattdessen eine Correlated Subquery zu verwenden. In dieser müsstest du feststellen, ob ein Bild ermittelt werden kann, und wenn nicht, eine weitere Subquery starten, die den Ersatzwert liefert. Da wird wohl IF() oder IFNULL() zum Einsatz kommen müssen.

Eine andere Variante ist, den Left Join zu lassen und im SELECT zu prüfen, ob seitens der Galerie ein NULL kommt und auch hier mit IFNULL() und einer Subquery einen Ersatzwert zu ermitteln. Letzteres scheint mir einfacher zu sein, wenn du eh schon den Join hast und dich nicht erst in Correlated Subquerys einarbeiten möchtest. Obwohl, so schwierig ist das auch wieder nicht.

dedlfix.