select * from table1;
ID NAME
1 wang
2 liu
3 yang
select * from table2;
ID SCORE
2 80
3 95
4 90
----------------------------------
一,外连接
1.左外连接(left join 或 left outer join)
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值(null)。
select *
from table1 left outer join table2
on table1.id=table2.id
ID NAME ID_1 SCORE
2 liu 2 80
3 yang 3 95
1 wang
2.右外连接
select *
from table1 t1 right outer join table2 t2
on t1.id=t2.id
ID NAME ID_1 SCORE
2 liu 2 80
3 yang 3 95
4 90
3.完整外部联接:full join 或 full outer join
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
select *
from table1 t1 full outer join table2 t2
on t1.id=t2.id
ID NAME ID_1 SCORE
2 liu 2 80
3 yang 3 95
1 wang
4 90
二,内连接
select *
from table1 t1 inner join table2 t2
on t1.id=t2.id
=
select *
from table1 t1 cross join table2 t2
where t1.id=t2.id;
(注:cross join后加条件只能用where,不能用on)
ID NAME ID_1 SCORE
2 liu 2 80
3 yang 3 95
三,交叉连接
没有 WHERE 子句的交叉联接将产生联接所涉及的表的笛卡尔积。第一个表的行数乘以第二个表的行数等于笛卡尔积结果集的大小。(table1和table2交叉连接产生3*3=9条记录)
select *
from table1 t1 cross join table2 t2
=
select *
from table1,table2
ID NAME ID_1 SCORE
1 wang 2 80
1 wang 3 95
1 wang 4 90
2 liu 2 80
2 liu 3 95
2 liu 4 90
3 yang 2 80
3 yang 3 95
3 yang 4 90
分享到:
相关推荐
* INNER JOIN:仅对满足连接条件的 CROSS 中的列。 * LEFT OUTER JOIN:一个表满足条件的行,和另一个表的所有行。 * RIGHT OUTER JOIN:与 LEFT 相同,但两个表的角色互换。 * FULL OUTER JOIN:LEFT OUTER 和 ...
根据不同的连接方式,`JOIN`可以分为几种类型,包括`INNER JOIN`、`OUTER JOIN`(左外联接`LEFT JOIN`、右外联接`RIGHT JOIN`以及全外联接`FULL JOIN`)和`CROSS JOIN`。每种类型的`JOIN`都有其独特的应用场景和特点。...
根据连接方式的不同,可以分为内连接(INNER JOIN)、外连接(LEFT JOIN、RIGHT JOIN 和 FULL JOIN)以及交叉连接(CROSS JOIN)。下面我们将详细探讨每种连接方式的特点、适用场景及其具体的实现方法。 #### 内...
对于开发使用到数据库的应用,免不了就要使用联合查询,SQL中常用的联合查询有inner join、outer join和cross join;这三者的区别很多人都应该不是很清楚,包括我自己,下面我们一起来看看,如果你使用join连表,...
full outer join 和 cross join 广泛应用于多表查询中,例如: * 查询两个表中的所有记录,并将它们组合成一个结果集 * 查询两个表中的所有记录,并将它们组合成一个结果集,而不管是否有匹配的记录
在关系数据库管理系统中,SQL 语言提供了多种类型的连接方式,如 inner join、left outer join、right outer join、full outer join、cross join 等。 inner join,也称为等值连接或自然连接,是最常见的一种连接。...
3. RIGHT JOIN (或 RIGHT OUTER JOIN): 右JOIN与LEFT JOIN相反,返回右表的所有记录,即使左表中没有匹配的记录。左表中未找到匹配项的记录将用NULL填充。语法: ```sql SELECT columns FROM table1 RIGHT JOIN ...
1. **交叉JOIN (Cross JOIN)**: 交叉JOIN也称为笛卡尔积,它返回第一个表格的所有记录与第二个表格的所有记录的组合。在上述例子中,表格`A_test`有3条记录,表格`B_test`有5条记录,所以交叉JOIN会产生15条记录(3...
外连接分三类:左外连接(Left Outer Join)、右外连接(Right Outer Join)和全外连接(Full Outer Join)。 外连接的共同点是都返回符合连接条件和查询条件的数据行。不同点是: 左外连接还返回左表中不符合连接...
5. **交叉连接(CROSS JOIN)**或**笛卡尔积**: 交叉连接返回两个表中所有可能的行组合,如果没有指定ON条件,这就是默认的JOIN类型。在PL/SQL中,它表现为简单的表名并列。 示例: ``` SELECT * FROM a, b; ...
2. **LEFT JOIN (或 LEFT OUTER JOIN)**: LEFT JOIN返回第一个表的所有行,即使在第二个表中没有匹配的行。如果在第二个表中没有找到匹配项,则结果集中的对应列将填充NULL值。 3. **RIGHT JOIN (或 RIGHT OUTER ...
左连接(`LEFT JOIN`/`LEFT OUTER JOIN`)、右连接(`RIGHT JOIN`/`RIGHT OUTER JOIN`)、全连接(`FULL JOIN`/`FULL OUTER JOIN`)、内连接(`INNER JOIN`/`JOIN`)以及交叉连接(`CROSS JOIN`)和自连接。 #### 二、左连接 ...
在SQL中,表连接(JOIN...此外,还可以使用其他类型的JOIN,如INNER JOIN(仅返回匹配的行)和自JOIN(一个表与自身的JOIN),以满足特定的查询需求。在学习SQL时,理解JOIN的概念及其不同变体是非常基础且重要的一步。
下面我们将详细介绍几种常见的JOIN类型:内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)以及全连接(FULL JOIN),并通过具体的例子进行说明。 #### 一、内连接(INNER JOIN) 内连接是最常用...
- 外连接分为左外连接(Left Outer Join)、右外连接(Right Outer Join)和全外连接(Full Outer Join)。 - **左外连接**(Left Join)保留左表(在JOIN语句中位于前面的表)的所有行,即使在右表中没有匹配的行...
在MySQL中,主要的Join方法包括INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN、SELF JOIN以及CROSS JOIN等。 INNER JOIN(内连接):是所有Join中最常见的类型。使用INNER JOIN后,只有两个表中能够相互匹配的记录...
SELECT [t0].[FirstName], [t0].[LastName], [t2].[TerritoryDescription] FROM [dbo].[Employees] AS [t0] CROSS JOIN [dbo].[EmployeeTerritories] AS [t1] INNER JOIN [dbo].[Territories] AS [t2] ON [t2]....
不同类型的连接关键字,如`CROSS JOIN`、`INNER JOIN`、`LEFT OUTER JOIN`、`RIGHT OUTER JOIN`和`FULL OUTER JOIN`,决定了查询结果集中包含哪些行。 总之,理解并熟练运用各种连接类型对于有效地从数据库中提取所...
sql多表连接查询inner join, left join , right join ,full join ,cross join Posted on 2008-05-07 21:55 我开始懂了 阅读(21431) 评论(9) 编辑 收藏 inner join,full outer join,left join,right jion 内部连接 ...