INNERER JOIN

Abgeschlossen

Tabellen verknüpfen

In relationalen Datenbanken werden Daten häufig in mehreren Tabellen organisiert, um Redundanz zu minimieren und die Datenintegrität zu verbessern. Dieser Designansatz, der als Normalisierung bezeichnet wird, verhindert, dass die gleichen Informationen an verschiedenen Stellen wiederholt werden. Dies bedeutet jedoch, dass nützliche Informationen häufig auf mehrere Tabellen verteilt sind.

Verknüpfungen sind wichtige SQL-Vorgänge, die diese Lücke überbrücken, sodass Sie Zeilen aus zwei oder mehr Tabellen kombinieren und verwandte Daten in einem einzigen, einheitlichen Resultset abrufen können. Im Wesentlichen ermöglichen Verknüpfungen es Ihnen, Informationen abzufragen, die logisch verbunden, aber physisch voneinander getrennt sind. Sie erreichen diese Kombination, indem sie Zeilen basierend auf Werten identifizieren und abgleichen, die in einer oder mehreren gemeinsamen Spalten zwischen den Tabellen gefunden wurden. Diese allgemeinen Spalten dienen häufig als Verknüpfung zwischen einem Primärschlüssel in einer Tabelle und einem Fremdschlüssel in einer anderen, wobei die im Datenbankschema definierten Beziehungen hergestellt werden.

Hinweis: Ein Primärschlüssel ist ein eindeutiger Bezeichner für jeden Datensatz in einer Tabelle und stellt sicher, dass in dieser Spalte keine zwei Zeilen denselben Wert aufweisen. Ein Fremdschlüssel ist dagegen eine Spalte in einer Tabelle, die auf den Primärschlüssel in einer anderen Tabelle verweist und damit die beiden Tabellen verknüpft.

Es gibt mehrere "Geschmacksrichtungen" von Verknüpfungen (INNER, LEFT, RIGHT, FULL OUTER, ), NATURALdie jeweils für die Kombination von Tabellen auf etwas unterschiedliche Weise konzipiert sind. Sie ermöglichen die Kontrolle darüber, welche Zeilen im Resultset enthalten sind, basierend auf dem Vorhandensein oder Fehlen übereinstimmener Werte in den verknüpften Tabellen.

INNERER JOIN

Eins INNER JOIN ist einer der am häufigsten verwendeten SQL-Verknüpfungen. Es kombiniert Zeilen aus mehreren Tabellen basierend auf einer Bedingung, die übereinstimmende Werte in einer freigegebenen Spalte angibt.

Beim Ausführen einer INNER JOIN werden nur die Zeilen, die die Bedingung aus beiden Tabellen erfüllen, in das Resultset aufgenommen, wodurch nicht übereinstimmende Daten effektiv herausgefiltert werden. Dies eignet sich INNER JOIN ideal zum Abrufen verwandter Informationen, bei denen Verbindungen zwischen Tabellen explizit definiert sind, z. B. Kundenaufträge oder Mitarbeiterzuweisungen.

SELECT orders.order_id, customers.customer_name, employees.first_name, employees.last_name
FROM sales.orders AS orders
INNER JOIN sales.customers AS customers ON orders.customer_id = customers.customer_id
INNER JOIN sales.employees AS employees ON orders.employee_id = employees.employee_id;

Die bereitgestellte Abfrage verwendet mehrere INNER JOIN Vorgänge, um einen einheitlichen Ergebnisdatensatz abzurufen, der Details zu orders, customers und employees enthält.

Es ordnet das customer_id in der orders Tabelle dem entsprechenden customer_id in der customers Tabelle zu, und das employee_id in der orders Tabelle dem employee_id in der employees Tabelle. Daher gibt die Abfrage die ID der einzelnen Bestellungen zusammen mit den Namen des beteiligten Kunden und Mitarbeiters aus.