join有哪几种方式?内外连接有什么区别?

摘自:https://blog.csdn.net/u011794730/article/details/51200796

首先介绍一下,join有5中连接方式:1.内连接(inner join...on...)2.全外连接(full join ....on ... )3.左连接(left join ...on...)4.右连接(right join ...on ...)5.交叉连接(cross join ...on ...)

1.内连接(inner join...on...)  

select * from table1 a inner join table2 b on a.id=b.id 通过id将table1和table2 连接起来产生一个新表,新表是由这两个表的公共部分组成;如下图:

2.左外连接(left join ....on ... )

select * from table1 a left join table2 b on a.id=b.id 是以左表(table1)为基准,查询结果中包含左表全部数据,右表匹配数据不存在时用null代替;如下图:

3.右外连接(right join ... on...)

select * from table1 a right join table2 b on a.id=b.id 跟左外连接相对应,是以右表(table2)为基准,查询结果中包含右表全部数据,左表数据匹配不存在时用null代替;如下图:

4.全外连接(full join ...on...)

select * from table1 a full join table2 b on a.id=b.id 全外连接其实是左连接和右连接的一个合集,也就是说他会查询出左表和右表的全部数据,匹配不上的会显示为null;如下图:

5.交叉连接(cross join...)

select * from table1 a crossjoin table2 b ;

也可以写为 select * from table1,table2;

交叉连接,也称为笛卡尔积,查询返回结果的行数等于两个表行数的乘积

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. 内连接:INNER JOIN 2. 左连接:LEFT JOIN 3. 右连接:RIGHT JOIN 4. 全连接:FULL OUTER JOIN 5. 自然连接:NATURAL JOIN 6. 交叉连接:CROSS JOIN ### 回答2: 在查询的FROM子句中,可以通过以下几种方式实现表与表之间的连接: 1. 内连接(INNER JOIN):使用INNER JOIN关键字来连接两个表。内连接只返回两个表中满足连接条件的行。 2. 左连接(LEFT JOIN):使用LEFT JOIN关键字来连接两个表。左连接会返回左表中的所有行,以及满足连接条件的右表中的行,如果右表中没有满足条件的行,则返回NULL值。 3. 右连接(RIGHT JOIN):使用RIGHT JOIN关键字来连接两个表。右连接会返回右表中的所有行,以及满足连接条件的左表中的行,如果左表中没有满足条件的行,则返回NULL值。 4. 全连接(FULL JOIN):使用FULL JOIN关键字来连接两个表。全连接会返回左表和右表中的所有行,并将没有匹配的行以NULL值表示。 5. 交叉连接(CROSS JOIN):使用CROSS JOIN关键字来连接两个表。交叉连接会返回两个表中的所有行的组合,结果集的行数等于左表的行数乘以右表的行数。 这些连接方式不仅可以在FROM子句中使用关键字来实现,还可以使用ON关键字来指定连接条件。每种连接方式都有其特定的应用场景,可以根据具体需要来选择适合的连接方式。 ### 回答3: 在查询的FROM子句中,实现表与表之间的连接有以下几种方式: 1. 内连接(INNER JOIN):使用INNER JOIN关键字来表示。内连接返回两个表中相匹配的行,即仅返回两个表中有交集的数据。 2. 左连接(LEFT JOIN):使用LEFT JOIN关键字来表示。左连接返回左表中的所有行,并将右表中与之匹配的行进行组合,若右表中无匹配行,则返回NULL值。 3. 右连接(RIGHT JOIN):使用RIGHT JOIN关键字来表示。右连接与左连接相反,返回右表中的所有行,并将左表中与之匹配的行进行组合,若左表中无匹配行,则返回NULL值。 4. 全连接(FULL JOIN):使用FULL JOIN关键字来表示。全连接返回两个表中的所有行,如果某个表中没有匹配的行,则返回NULL值。 此外,还有交叉连接(CROSS JOIN),表示将两个表的每一行与另一个表的每一行进行组合,以返回所有可能的组合结果。在查询中,交叉连接可以使用CROSS JOIN关键字来表示,也可以不使用关键字,直接在FROM子句中列出要连接的表。 这些连接方式可以根据需求选择合适的方式进行表间连接操作,通过指定不同的关键字来实现连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值