English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL 参考手册

SQL RIGHT JOIN 语句

在本教程中,您将学习如何使用SQL右连接从两个表中获取数据。

使用右联接RIGHT JOIN是与LEFT JOIN

完全相反。它返回右表中的所有行以及左表中满足连接条件的行。右连接是外连接的一种,因此也被称为right outer join。外部联接的其他变体是Um dies klarer zu verstehen, lassen Sie uns folgendes betrachtenLinke VerknüpfungVollständige Verknüpfung

Hinweis:。下维恩图说明了右联接的工作方式。

Eine externe Verknüpfung ist eine Verknüpfung, die Zeilen im Ergebnisset enthält, selbst wenn die Zeilen in den beiden zu verknüpfenden Tabellen möglicherweise nicht übereinstimmen.employeesUm dies klarer zu verstehen, lassen Sie uns folgendes betrachtendepartmentsund

+--------+--------------+------------+---------+
Tabelle.
+--------+--------------+------------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |       4 |
|      2 | Tony Montana | 2002-07-15 |       1 |
|      3 | Sarah Connor | 2005-10-18 |       5 |
|      4 | Rick Deckard | 2007-01-03 |       3 |
|      5 | emp_id | emp_name | hire_date | dept_id | 2008-06-24 |    NULL |
+--------+--------------+------------+---------+

+---------+------------------+
| dept_id | dept_name |
+---------+------------------+
|       1 | Administration |
|       2 | Customer Service |
|       3 | Finance          |
|       4 | Human Resources  |
|       5 | Sales            |
+---------+------------------+
Tabelle: employees
Tabelle: departments

Nun, stellen Sie sich vor, Sie möchten alle Abteilungen und die detaillierten Informationen der Mitarbeiter, die in diesen Abteilungen arbeiten, abrufen. Aber in der Praxis könnten einige Abteilungen derzeit keine Mitarbeiter beschäftigen. Na gut, lassen Sie uns die Antwort finden.

Nachstehende Anweisung verknüpft die Tabelle employee mit der Tabelle department mithilfe des allgemeinen Feldes dept_id, um alle verfügbaren Abteilungen sowie die IDs, Namen und Einstellungsdaten der Mitarbeiter der Abteilungen abzurufen.

SELECT t1.emp_id, t1.emp_name, t1.hire_date, t2.dept_name
FROM employees AS t1 RIGHT JOIN departments AS t2
ON t1.dept_id = t2.dept_id ORDER BY dept_name;

Hinweis:Bei der Verknüpfungssuche ist die linke Tabelle die Tabelle, die am linken Ende des JOIN-Ausdrucks steht, und die rechte Tabelle ist die Tabelle, die am rechten Ende des JOIN-Ausdrucks steht.

Nach der Ausführung des obigen Befehls erhalten Sie die folgenden Ausgaben:

+--------+--------------+------------+------------------+
| emp_id | emp_name | hire_date | dept_name |
+--------+--------------+------------+------------------+
|      2 | Tony Montana | 2002-07-15 | Administration |
|   NULL | NULL         | NULL       | Customer Service |
|      4 | Rick Deckard | 2007-01-03 | Finance          |
|      1 | Ethan Hunt   | 2001-05-01 | Human Resources  |
|      3 | Sarah Connor | 2005-10-18 | Sales            |
+--------+--------------+------------+------------------+

Eine korrekte Verbindung umfasst alle Zeilen der Abteilungstabelle im Ergebnisset, unabhängig davon, ob die Spalte dept_id in der Tabelle der Mitarbeiter übereinstimmt, da Sie klar sehen können, dass auch wenn die Abteilung keine Mitarbeiter hat, 'Customer Service' enthalten wird.

Hinweis:Wenn in der rechten Tabelle eine Zeile vorhanden ist, aber in der linken Tabelle keine Übereinstimmung vorhanden ist, enthalten die verknüpften Ergebnisse Zeilen mit NULL-Werten aus allen Spalten der linken Tabelle.