/ / Woher weiß ich, welche Tabelle links und rechts ist? Mysql - mysql, sql

Woher weiß ich, welche Tabelle links und rechts ist? Mysql - mysql, sql

Ich weiß, dass die erste Auswahl aus der Abfrage die linke Tabelle ist, aber ich bin immer noch verwirrt, wann der rechte und linke Join verwendet wird:

Ex:

select chann.name from investments inv
right join channels chann on chann.id = inv.channel_id;


select chann.name from channels chann
left join investments inv on chann.id = inv.channel_id;

Beide geben das gleiche Ergebnis zurück, warum bei der ersten Abfrage rechts verwendet wird und warum bei der zweiten Frage: Hat dies etwas mit dem Fremdschlüssel zu tun?

Vielen Dank

Antworten:

3 für die Antwort № 1

In Ihrem Beispiel sind beide Abfragen gleich, da Sie beim Ändern von rechts nach links auch die Tabellenreihenfolge ändern. Betrachten Sie zum einfachen Verständnis das folgende Beispiel:

SELECT A.* FROM Table1 A LEFT JOIN Table2 B on A.key=B.Key

In diesem Fall bedeutet LEFT JOIN alle Datensätze aus Tabelle1, da sich die Tabelle links befindet. Wenn Sie rechts verwenden, bedeutet dies alle Datensätze aus Tabelle 2


1 für die Antwort № 2

LEFT JOIN: Liefert alle Zeilen der linken Tabelle und die übereinstimmenden Zeilen vom rechten Tisch RECHTE JOIN: Alle Zeilen der rechten Tabelle zurückgeben, und die übereinstimmenden Zeilen aus der linken Tabelle

Das bedeutet, dass ein linker Join all das brauchtDatensätze aus Ihrer ersten Tabelle und verknüpfen Sie sie nur mit den Datensätzen in der rechten Tabelle, die Ihrer ON-Bedingung entsprechen Ein rechter Join führt das Gegenteil aus (alle von der zweiten Tabelle nehmen und mit den Datensätzen der ersten Tabelle verbinden, die der ON-Bedingung entsprechen)