SQL 联表查询的三种方式:左连接、右连接、内连接、默认连接

数据库表:

blog表:

user表:

 左连接:

以左表为主表,查询出满足条件的内容。查询到的内容是左表全部的内容,和右表满足要求的内容。可能会出行右表内容为为空的可能。

select b.id,b.title,u.name from blog b left join  user u on u.id=b.user_id

查询结果:

 右连接:

以右表为主表,查询出满足条件的内容。查询到的内容是右表全部的内容,和左表满足要求的内容。可能会出行左表内容为为空的可能。左连接和右连接是相反的情况,调换表的位置,就相当于调换了表的连接方向

select b.id,b.title,u.name from blog b right join  user u on u.id=b.user_id

查询结果:

内连接: 

查询到的数据是两个表中都存在的数据,不存在一方为空的情况。两个表的位置不影响查询。


select b.id,b.title,u.name from user u inner join  blog b   on u.id=b.user_id

查询结果:

默认连接: 

当不定义连接方向时,默认连接就是内连接。

select b.id,b.title,u.name from blog b join  user u on u.id=b.user_id

查询结果:

 

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 SQL 的外连接(outer join)来实现将不匹配的行的默认返回值设置为0。具体的语法和步骤如下: 假设你有两个A和B,你想要进行外连接,并在不匹配时将默认返回值设置为0。以下是一种常用的方法: ```sql SELECT A.column1, B.column2 FROM tableA A LEFT JOIN tableB B ON A.common_column = B.common_column ``` 在上述代码中,我们使用了左外连接(LEFT JOIN)来将A与B进行连接。根据需要,你也可以选择使用右外连接(RIGHT JOIN)或全外连接(FULL OUTER JOIN)。 接下来,我们使用 ON 子句指定了连接条件,即 A 和 B 的共同列(common_column)。根据你的实际情况,需要将 common_column 替换为你要匹配的列名。 最后,我们选择了需要返回的列(column1 和 column2)。如果在连接时没有匹配到行,对应的列值将会是 NULL。 为了将不匹配的行的默认返回值设置为0,你可以使用 COALESCE 函数。COALESCE 函数返回参数中的第一个非 NULL 值。这样我们可以用 COALESCE 函数将 NULL 值替换为0: ```sql SELECT A.column1, COALESCE(B.column2, 0) AS column2 FROM tableA A LEFT JOIN tableB B ON A.common_column = B.common_column ``` 在上述代码中,我们使用 COALESCE 函数将 B 的 column2 列的 NULL 值替换为0,并将其命名为 column2。这样,当外连接无法找到匹配的行时,column2 列将返回0。 希望这能帮到你!如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值