个性化阅读
专注于IT技术分析

DBMS SQL联接查询

顾名思义, JOIN意味着结合一些东西。对于SQL, JOIN的意思是“合并两个或多个表”。

在SQL中, JOIN子句用于合并数据库中两个或多个表中的记录。

SQL JOIN的类型

  1. 内部联接
  2. 左联接
  3. 右联接
  4. 全联接

样品表

雇员

EMP_ID EMP_NAME 薪水 年龄
1 Angelina Chicago 200000 30
2 Robert Austin 300000 26
3 Christian Denver 100000 42
4 Kristen Washington 500000 29
5 Russell 洛杉矶天使 200000 36
6 Marry Canada 600000 48

项目

PROJECT_NO EMP_ID 部门
101 1 Testing
102 2 Development
103 3 Designing
104 4 Development

1.内联

在SQL中, 只要满足条件, INNER JOIN就会选择两个表中具有匹配值的记录。它从条件满足的两个表中返回所有行的组合。

句法

SELECT table1.column1, table1.column2, table2.column1, ....
FROM table1 
INNER JOIN table2
ON table1.matching_column = table2.matching_column;

询问

SELECT EMPLOYEE.EMP_NAME, PROJECT.DEPARTMENT 
FROM EMPLOYEE
INNER JOIN PROJECT
ON PROJECT.EMP_ID = EMPLOYEE.EMP_ID;

输出量

EMP_NAME 部门
Angelina Testing
Robert Development
Christian Designing
Kristen Development

2.左加入

SQL左联接返回左表中的所有值以及右表中的匹配值。如果没有匹配的联接值, 它将返回NULL。

句法

SELECT table1.column1, table1.column2, table2.column1, ....
FROM table1 
LEFT JOIN table2
ON table1.matching_column = table2.matching_column;

询问

SELECT EMPLOYEE.EMP_NAME, PROJECT.DEPARTMENT 
FROM EMPLOYEE
LEFT JOIN PROJECT
ON PROJECT.EMP_ID = EMPLOYEE.EMP_ID;

输出量

EMP_NAME 部门
Angelina Testing
Robert Development
Christian Designing
Kristen Development
Russell NULL
Marry NULL

3.右联接

在SQL中, RIGHT JOIN返回右表中行的值中的所有值以及左表中的匹配值。如果两个表都没有匹配项, 它将返回NULL。

句法

SELECT table1.column1, table1.column2, table2.column1, ....
FROM table1 
RIGHT JOIN table2
ON table1.matching_column = table2.matching_column;

询问

SELECT EMPLOYEE.EMP_NAME, PROJECT.DEPARTMENT 
FROM EMPLOYEE
RIGHT JOIN PROJECT
ON PROJECT.EMP_ID = EMPLOYEE.EMP_ID;

输出量

EMP_NAME 部门
Angelina Testing
Robert Development
Christian Designing
Kristen Development

4.全联接

在SQL中, FULL JOIN是左右外部联接的组合结果。连接表具有两个表中的所有记录。它将NULL放在未找到的匹配项上。

句法

SELECT table1.column1, table1.column2, table2.column1, ....
FROM table1 
FULL JOIN table2
ON table1.matching_column = table2.matching_column;

询问

SELECT EMPLOYEE.EMP_NAME, PROJECT.DEPARTMENT 
FROM EMPLOYEE
FULL JOIN PROJECT 
ON PROJECT.EMP_ID = EMPLOYEE.EMP_ID;

输出量

EMP_NAME 部门
Angelina Testing
Robert Development
Christian Designing
Kristen Development
Russell NULL
Marry NULL
赞(0)
未经允许不得转载:srcmini » DBMS SQL联接查询

评论 抢沙发

评论前必须登录!