`
kevin.wang
  • 浏览: 251026 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

outer join , inner join , cross join

 
阅读更多
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

分享到:
评论

相关推荐

    SQL中的left outer join,inner join,right outer join用法详解

    * INNER JOIN:仅对满足连接条件的 CROSS 中的列。 * LEFT OUTER JOIN:一个表满足条件的行,和另一个表的所有行。 * RIGHT OUTER JOIN:与 LEFT 相同,但两个表的角色互换。 * FULL OUTER JOIN:LEFT OUTER 和 ...

    SQL中inner join、outer join和cross join的区别

    根据不同的连接方式,`JOIN`可以分为几种类型,包括`INNER JOIN`、`OUTER JOIN`(左外联接`LEFT JOIN`、右外联接`RIGHT JOIN`以及全外联接`FULL JOIN`)和`CROSS JOIN`。每种类型的`JOIN`都有其独特的应用场景和特点。...

    inner join-outer join-cross join查询方式总结

    根据连接方式的不同,可以分为内连接(INNER JOIN)、外连接(LEFT JOIN、RIGHT JOIN 和 FULL JOIN)以及交叉连接(CROSS JOIN)。下面我们将详细探讨每种连接方式的特点、适用场景及其具体的实现方法。 #### 内...

    SQL联合查询inner join、outer join和cross join的区别详解

    对于开发使用到数据库的应用,免不了就要使用联合查询,SQL中常用的联合查询有inner join、outer join和cross join;这三者的区别很多人都应该不是很清楚,包括我自己,下面我们一起来看看,如果你使用join连表,...

    Mysql之innerjoin,leftjoin,rightjoin详解.pdf

    full outer join 和 cross join 广泛应用于多表查询中,例如: * 查询两个表中的所有记录,并将它们组合成一个结果集 * 查询两个表中的所有记录,并将它们组合成一个结果集,而不管是否有匹配的记录

    数据库的外联和内联知识 Inner Join

    在关系数据库管理系统中,SQL 语言提供了多种类型的连接方式,如 inner join、left outer join、right outer join、full outer join、cross join 等。 inner join,也称为等值连接或自然连接,是最常见的一种连接。...

    join on 语句及扩展

    3. RIGHT JOIN (或 RIGHT OUTER JOIN): 右JOIN与LEFT JOIN相反,返回右表的所有记录,即使左表中没有匹配的记录。左表中未找到匹配项的记录将用NULL填充。语法: ```sql SELECT columns FROM table1 RIGHT JOIN ...

    sql中join总结

    1. **交叉JOIN (Cross JOIN)**: 交叉JOIN也称为笛卡尔积,它返回第一个表格的所有记录与第二个表格的所有记录的组合。在上述例子中,表格`A_test`有3条记录,表格`B_test`有5条记录,所以交叉JOIN会产生15条记录(3...

    数据库各种join连接

    外连接分三类:左外连接(Left Outer Join)、右外连接(Right Outer Join)和全外连接(Full Outer Join)。 外连接的共同点是都返回符合连接条件和查询条件的数据行。不同点是: 左外连接还返回左表中不符合连接...

    PL/SQL Join实例分析

    5. **交叉连接(CROSS JOIN)**或**笛卡尔积**: 交叉连接返回两个表中所有可能的行组合,如果没有指定ON条件,这就是默认的JOIN类型。在PL/SQL中,它表现为简单的表名并列。 示例: ``` SELECT * FROM a, b; ...

    SQL 之JOIN 用法完全版.rar

    2. **LEFT JOIN (或 LEFT OUTER JOIN)**: LEFT JOIN返回第一个表的所有行,即使在第二个表中没有匹配的行。如果在第二个表中没有找到匹配项,则结果集中的对应列将填充NULL值。 3. **RIGHT JOIN (或 RIGHT OUTER ...

    SQL连接JOIN例

    左连接(`LEFT JOIN`/`LEFT OUTER JOIN`)、右连接(`RIGHT JOIN`/`RIGHT OUTER JOIN`)、全连接(`FULL JOIN`/`FULL OUTER JOIN`)、内连接(`INNER JOIN`/`JOIN`)以及交叉连接(`CROSS JOIN`)和自连接。 #### 二、左连接 ...

    表连接 SQL JOIN 速查表

    在SQL中,表连接(JOIN...此外,还可以使用其他类型的JOIN,如INNER JOIN(仅返回匹配的行)和自JOIN(一个表与自身的JOIN),以满足特定的查询需求。在学习SQL时,理解JOIN的概念及其不同变体是非常基础且重要的一步。

    sql语句中join的用法

    下面我们将详细介绍几种常见的JOIN类型:内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)以及全连接(FULL JOIN),并通过具体的例子进行说明。 #### 一、内连接(INNER JOIN) 内连接是最常用...

    SQL之join使用1

    - 外连接分为左外连接(Left Outer Join)、右外连接(Right Outer Join)和全外连接(Full Outer Join)。 - **左外连接**(Left Join)保留左表(在JOIN语句中位于前面的表)的所有行,即使在右表中没有匹配的行...

    mysql join所有方法总结

    在MySQL中,主要的Join方法包括INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN、SELF JOIN以及CROSS JOIN等。 INNER JOIN(内连接):是所有Join中最常见的类型。使用INNER JOIN后,只有两个表中能够相互匹配的记录...

    LINQ to SQL语句之Join和Order By

    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]....

    数据库外联、内联.pdf

    不同类型的连接关键字,如`CROSS JOIN`、`INNER JOIN`、`LEFT OUTER JOIN`、`RIGHT OUTER JOIN`和`FULL OUTER JOIN`,决定了查询结果集中包含哪些行。 总之,理解并熟练运用各种连接类型对于有效地从数据库中提取所...

    SQL多表连接查询、多表关联

    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 内部连接 ...

Global site tag (gtag.js) - Google Analytics