Bernd: Nochmal neu: mysql Afrage == FALSE, owohl sie in phpmyadmin geht

Beitrag lesen

Die Kombination von JOIN und DISTINCT legt die Vermutung nahe, dass Du in Wirklichkeit eher Subselects einsetzen willst. Natürlich ist es eine gute Idee, EXPLAIN zu befragen, nachdem Du die Abfrage erfolgreich umgebaut hast, um herauszufinden, welche Version performanter ist.

Hi Vinzenz und alle anderen,

ich wüßte mal gerne, warum ausgerechnet diese Abfrage solch ein Problem macht. Ich habe unzählige JOINS, die ich für komplizierter halte.

Also gut, was mache ich?

Ich habe eine Tabelle mit Adressdaten und eine, in die ich lediglich dann etwas eintrage, wenn die Adresse ein bestimmtes Kriterium erfüllt. Dann allerdings mit zusätzlichen Daten. Beide Tabellen verbindet die AdressID.

Tab1:

AdressID, Name, Strasse, Ort

Tab2:

ID, AdressID, Spalte1, Spalte2, Spalte3

Query:

  
select DISTINCT \n  
r.AdressID,  
r.Name,  
r.Strasse,  
r.Ort,  
z.Spalte2  
FROM tab1 r  
LEFT JOIN tab2 z  
ON r.AdressID = z.AdressID  
WHERE  
AdressID = 10 AND  
COALESCE(z.Spalte2, 0) = 0  
ORDER BY r.AdressID DESC  

Ganz ehrlich, ich verstehe nicht, warum diese Abfrage so viele Kombinationen ergeben soll. I der entsprechenden Tabelle sind ca. 4000 Einträge in der Adress-Tabelle und 2000 in der tab2.

Wer erklärt mir, warum das für mysql ein Problem ist und wie ich es umgehe?

Bernd