SQL-Join und linker Outer-Join: Warum unterscheiden sich die Ergebnisse? [Duplikat]

8

Ich habe eine Tabelle partenaire . Ein Partenaire kann eine oder mehrere Adressen haben. Und natürlich kann eine Adresse zu mehr als einem Partenaire "gehören". Also habe ich 3 Tabellen: partenaire , partenaire_adresse und adresse . Die Adresse hat nur eine Stadt ( ville in Französisch), daher habe ich einen Fremdschlüssel id_ville in der Tabelle addresse .

%Vor%

Das gibt mir diese Ergebnisse:

%Vor%

Wenn ich nun LEFT OUTER JOIN für die letzte Tabelle ( region ) mache, sind die Ergebnisse nicht die gleichen:

%Vor%

Nicht die gleichen Ergebnisse. Siehe:

%Vor%

Ich denke, das sollte es nicht, denn in der ersten Abfrage sind id_region und id_departement nicht null, also sollten Sie, wenn Sie einen "JOIN" oder einen "LEFT OUTER JOIN" machen, die Ergebnisse gleich sein. Oder vermisse ich etwas?

    
Olivier Pons 02.04.2013, 22:08
quelle

1 Antwort

4

Das Problem, auf das Sie stoßen, hängt mit der Tatsache zusammen, dass SQL keine Garantie für die Reihenfolge des Ergebnisses gibt, wenn keine Reihenfolge angegeben ist. Wenn Sie eine ORDER BY-Klausel hinzufügen, sollten Sie die gleichen Ergebnisse erhalten, vorausgesetzt, dass die Tabellen in allen Zeilen übereinstimmende Schlüssel haben (natürlich).

    
didierc 02.04.2013, 22:16
quelle

Tags und Links