Die meisten modernen relationalen Datenbank -Server verwenden das Structured Query Language oder SQL , zu ergänzen , zu aktualisieren und berichten auf Informationen in Datenbanken. SQL SELECT-Anweisung verwendet werden, um Daten anzuzeigen, verfügt über eine optionale Klausel genannt INNER JOIN . Er verbindet zwei Tabellen vorübergehend in einer einzigen Einheit . Von SQL können Sie INNER JOIN auf zwei Arten: implizit , indem Sie die Tabellen und explizit , indem die Worte " INNER JOIN" in der Anweisung Syntax . Wählen
SQL , zeigt die Anweisung SELECT listet basierend auf Daten in einer Datenbank. Zum Beispiel, um eine einfache Liste von Kunden nach Namen sortiert zeigen , könnten Sie die folgende SQL-Code : SELECT
customer_number , Name, Stadt, Bundesland, zip_code FROM Kunden ORDER BY Name ;
Inner Join
A JOIN-Operation verbindet zwei Tabellen zusammen . Der Kunde Tisch, in diesem Beispiel , kann ein Feld namens sales_code die entsprechenden Datensätze in einem separaten Verkäufer Tabelle bezieht . Die folgenden Aussagen Liste der Kundendaten und der Verkäufer seinen Namen. Im ersten Beispiel wird JOIN implizit , die zweite explizit :
SELECT customer_number , Name, Stadt, Bundesland, zip_code , sales_name FROM Kunden WHERE Verkäufer customers.sales_code = salesperson.sales_code ORDER BY Name ;
< p> SELECT customer_number , Name, Stadt, Bundesland, zip_code , sales_name FROM Kunden INNER JOIN ON Verkäufer customers.sales_code = salesperson.sales_code ORDER BY Name ;
Ergebnisse
INNER JOIN und impliziten Join Ansätze zu den gleichen Ergebnissen . Sowohl Liste die gleichen Datensätze in der gleichen Reihenfolge. Wenn Sie die INNER JOIN -Syntax verwenden , dies explizit anweist SQL auf zwei Tabellen nur auf die Datensätze, die sie gemeinsam haben, zu verbinden. Mit der impliziten Version nimmt SQL Sie eine innere Verknüpfung und verbindet die Tabellen als hätten Sie sie explizit angegeben .
Leistung
Der Performance-Unterschied zwischen INNER JOIN und impliziten Join hängt von der Datenbank -Server wie IBM DB2 oder Microsoft SQL Server. Im Fall von DB2 ist die INNER JOIN etwa ein percent.faster . Bevor der Server führt eine SELECT , organisiert sie die Anweisung in einem Plan, der eine Reihe von Schritten optimiert werden, um Daten effizient zu sammeln ist . Die angestrebten Ergebnisse für beide Ansätze gleich sind, so der Plan ist in der Regel fast die gleichen. Da DB2 zeigt eine leichte Geschwindigkeitsdifferenz zwischen den beiden Methoden sind die Pläne wahrscheinlich anders, aber in nur geringen Möglichkeiten .
Best Practice
INNER JOIN-Syntax ist ein neuere, explizite Ansatz für eine SELECT-Anweisung. Die Website SQL Server Performance empfiehlt deren Verwendung über die ältere implizite Methode, weil es klarer ist . Die implizite Format macht die WHERE-Klausel erfüllen doppelte Aufgabe mit der Verknüpfung von Tabellen und Auswertung bedingte Tests . Die explizite Format hält die beiden Aufgaben getrennt ; INNER JOIN wird der Verbindungs-und WHERE -Tests für bestimmte Werte
.