SQL中的RIGHT JOIN关键字返回右表中存在但左表中不存在的所有匹配记录(或行)和记录(或行)。这意味着,如果右表中存在某行但不在左侧,结果将包括该行,但从左侧开始的每一列中的值均为NULL。如果左侧表中的记录不在右侧,则该记录将不包含在结果中。
RIGHT JOIN的语法是:
SELECT column_name(s)
FROM tableA
RIGHT JOIN tableB ON tableA.column_name = tableB.column_name;
SQL RIGHT JOIN示例:
在此示例中,我们将考虑两个表employee表,其中包含在特定部门工作的员工的详细信息,而department表则包含该部门的详细信息
员工表:
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]值正确的加入。