数据库连接(join)查询语句

数据库连接(join)查询语句

连接(join连接,联结)从两个或更多的表中获取结果——连接的含义是在于在水平方向上组合两个或更多数据表,并产生一个新的结果集合。可以在Select 语句的FROM子句或Where子句中建立,在FROM子句中指出连接时有助于将连接操作与Where子句中的搜索条件区分开来。

Where子句的连接语法格式为:

SELECT columns

FROM table1 , table2

WHERE join_condition

FROM子句的连接语法格式为:

SELECT columns

FROM

[ON)]

其中1、table2指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作。对同一个表的连接又称自连接(self-join)。

join_type 指出连接类型。

join_condition 连接条件,格式:[table1].column op [table2].column

op 比较操作符:=、<>、 <、 <=、 >、 >= 。

数据库连接(join)查询语句 连接(join连接,联结)从两个或更多的表中获取结果——连接的含义是在于在水平方向上组合两个或更多数据表,并产生一个新的结果集合。可以在Select 语句的FROM子句或Where子句中建立,在FROM子句中指出连接时有助于将连接操作与Where子句中的搜索条件区分开来。 Where子句的连接语法格式为: SELECT columns FROM table1 , table2 WHERE join_condition FROM子句的连接语法格式为: SELECT columns FROM [ON)] 其中1、table2指出参与连接操作的表名,连接可以对同一个表操作,也可以对多表操作。对同一个表的连接又称自连接(self-join)。 join_type 指出连接类型。 join_condition 连接条件,格式:[table1].column op [table2].column op 比较操作符:=、<>、 <、 <=、 >、 >= 。

假设有两张表:

A B

Id name id name

-- ---- -- ----

1 Pirate 1 Rutabaga

2 Monkey 2 Pirate

3 Ninja 3 Darth Vader

4 Spaghetti 4 Ninja

1、INNER JOIN:

SELECT A.id, A.name, B.id, B.name FROM A

INNER JOIN B

ON A.name = B.name

查询结果:

-- ---- -- ----

1 Pirate 2 Pirate

3 Ninja 4 Ninja

2、FULL OUTER JOIN:

SELECT A.id, A.name, B.id, B.name FROM A

FULL OUTER JOIN B

ON A.name = B.name

查询结果:

id name id name

-- ---- -- ----

1 Pirate 2 Pirate

2 Monkey null null

3 Ninja 4 Ninja

4 Spaghetti null null

null null 1 Rutabaga

null null 3 Darth Vader

、LEFT OUTER JOIN

SELECT A.id, A.name, B.id, B.name FROM A

LEFT OUTER JOIN B

ON A.name = B.name

查询结果:

id name id name

-- ---- -- ----

1 Pirate 2 Pirate

2 Monkey null null

3 Ninja 4 Ninja

4 Spaghetti null null

4、 OUTER JOIN

SELECT A.id, A.name, B.id, B.name FROM A

RIGHT OUTER JOIN B

ON A.name = B.name

查询结果:

id name id name

-- ---- -- ----

null null 1 Rutabaga

1 Pirate 2 Pirate

null null 3 Darth Vader

3 Ninja 4 Ninja

经验分享 程序员 微信小程序 职场和发展