SQL中的RIGHT JOIN关键字返回所有匹配的记录(或行)以及出现在右表但不在左表中的记录(或行)。这意味着,如果某行出现在右表中但不在左侧,结果将包括这一行,但在左侧的每一列中都有一个 NULL 值。如果左表中的记录不在右表中,则不会包含在结果中。
RIGHT JOIN 的语法是:-
SELECT column_name(s)
FROM tableA
RIGHT JOIN tableB ON tableA.column_name = tableB.column_name;
SQL 右连接示例:
在此示例中,我们将考虑两个表员工表,其中包含在特定部门工作的员工的详细信息和部门表,其中包含部门的详细信息
员工表:
emp_no | emp_name | dept_no |
E1 | Varun Singhal | D1 |
E2 | Amrita Aggarwal | D2 |
E3 | Ravi Anand | D3 |
部门表:
dept_no | d_name | location |
D1 | IT | Delhi |
D2 | HR | Hyderabad |
D3 | Finance | Pune |
D4 | Testing | Noida |
D5 | Marketing | Mathura |
要对这两个表执行右连接,我们将使用以下 SQL 查询:
select emp_no , emp_name ,d_name, location
from employee
right join dept on employee.dept_no = department.dept_no;
我们将得到的输出如下:
emp_no | emp_name | d_name | location |
E1 | Varun Singhal | IT | Delhi |
E2 | Amrita Aggarwal | HR | Hyderabad |
E3 | Ravi Anand | Finance | Pune |
[NULL] | [NULL] | Testing | Noida |
[NULL] | [NULL] | Marketing | Mathura |
由于右连接给出了匹配的行和出现在左表中但不在右表中的行。在这个例子中,我们看到不包含员工的部门在执行后包含 emp_no 和 emp_name 的 [NULL] 值正确加入。