dedlfix: Da versteh ich mysql nicht.

Beitrag lesen

Tach!

Was er aber durch die WHERE-Klausel wieder relativiert, so das nur das Ergebnis eines INNER-JOIN heraus kommt.
Stimmt. Aber sollte man jetzt vom DBMS erwarten dass es all diese Abhängigkeiten untersucht um zu wissen das die 2 IDs identisch sind?

Nein, sollte man nicht. Das ist nur unnötiger Aufwand pro Query. Korrigiere sie lieber einmalig und gut ist. Es ist ja nun wirklich nicht der Akt, sich auf eine von beiden Spalten festzulegen. MySQL versucht schon an (zu) vielen Stellen, dem Anwender entgegenzukommen, zwar meist dokumentiert aber ungewöhlich gegenüber anderen DBMSen.

Es gibt tatsächlich einen Weg in diese Richtung, der aber nicht überall untertützt wird... LEFT JOIN table USING id (weiß jetzt nicht ob MySQL das kann, scheinbar aber schon)

Kann es. Dadurch kann relativ einfach und explizit sichergestellt werden, dass id in beiden Tabellen vorkommt und gleichen Inhalt hat. Beim Join mit ON a.id=b.id müsste erst getestet werden, dass genau eine solche Bedingung und nicht ausschließlich anderslautende zum Joinen verwendet wurden.

dedlfix.