Database
 sql >> Datenbank >  >> RDS >> Database

Unterschied zwischen Inner Join und Outer Join in SQL

Inner Join und Outer Join sind zwei nützliche Methoden, um Datenbanktabellen zu verknüpfen und Daten aus mehreren Tabellen abzufragen. In diesem Artikel sehen wir uns den Unterschied zwischen Inner Join und Outer Join in SQL an.


Innere Verbindung

Inner Join gibt Zeilen aus zwei oder mehr Tabellen zurück, in denen mindestens eine Spalte in allen Tabellen denselben Wert hat. Wenn es keine gemeinsamen Werte gibt, werden keine Zeilen zurückgegeben.

Hier ist die Syntax von Inner Join:

select *  from table1 INNER JOIN table2 
on table1.column_name = table2.column_name;

OR

select * from table1 JOIN table2 
on table1.column_name = table2.column_name;


Äußerer Join

Outer Join gibt Zeilen aus zwei oder mehr Tabellen zurück, in denen mindestens eine Spalte einen gemeinsamen Wert hat, sowie Zeilen, in denen die Join-Bedingung fehlschlägt. Es gibt 3 Arten von äußeren Verknüpfungen:


Linker äußerer Join

In diesem Fall werden alle Zeilen der linken Tabelle im Ergebnis beibehalten, falls ihre Join-Bedingungen mit anderen Tabellen übereinstimmen, werden ihre Spaltenwerte zurückgegeben, andernfalls werden für diese Spalten Nullwerte zurückgegeben. Hier ist die Syntax von Left Outer Join.

select * from table1 
LEFT OUTER JOIN table2 
on table1.column_name = table2.column_name;


Right Outer Join

In diesem Fall werden alle Zeilen der rechten Tabelle im Ergebnis beibehalten, falls ihre Join-Bedingungen mit anderen Tabellen übereinstimmen, werden ihre Spaltenwerte zurückgegeben, andernfalls werden für diese Spalten Nullwerte zurückgegeben.

Hier ist die Syntax von Right Outer Join

select * from table1 
RIGHT OUTER JOIN table2 
on table1.column_name = table2.column_name;


Vollständiger äußerer Join

In diesem Fall werden alle Zeilen beider Tabellen zurückgegeben. Wenn die Join-Bedingung erfüllt ist, werden die Spalten mit den Werten beider Tabellen gefüllt. Wenn die Join-Bedingung fehlschlägt, werden die Werte einer der Tabellen in die Spalten gefüllt und der Rest wird als Nullwerte gefüllt.


Unterschied zwischen Inner Join und Outer Join in SQL

Hier sind die Hauptunterschiede zwischen Inner Join und Outer Join.

Innere Verknüpfung

  • Es werden nur Zeilen mit gemeinsamen Spaltenwerten zurückgegeben.
  • Sie können INNER JOIN oder JOIN-Klausel verwenden. Beide haben die gleiche Wirkung
  • Er gibt null zurück, wenn es keine übereinstimmenden Spaltenwerte zwischen zwei (oder mehr) Tabellen gibt
  • Inner Join ist schneller als Outer Join
  • Es ist nützlich, Suchen in mehreren Tabellen durchzuführen
  • Mathematisch ausgedrückt gibt es den Schnittpunkt zweier Mengen (Tabellen) zurück


Äußerer Join

  • Es gibt Werte aus einer oder mehreren Tabellen zurück, auch wenn es keine übereinstimmenden Spaltenwerte gibt
  • Für Zeilen ohne übereinstimmende Attribute wird für die verbleibenden Spalten null zurückgegeben
  • Full Outer Join und Full Join haben denselben Effekt.
  • Es ist langsamer als Inner Join
  • Es wird verwendet, um vollständige Informationen in zwei oder mehr Tabellen zu erhalten
  • Full Outer Join wird in MySQL nicht unterstützt. Es ist in PostgreSQL, SQL Server, Oracle und anderen gängigen Datenbanken verfügbar.


Benötigen Sie ein Reporting-Tool für MySQL? Ubiq macht es einfach, Daten innerhalb von Minuten zu visualisieren und in Echtzeit-Dashboards zu überwachen. Probieren Sie es noch heute aus!