Join的用法

t1表的结构与数据如下:

t1表
t2 表的结构与数据如下:
t2表

inner join

select * from t1 inner join t2 on t1.id = t2.id;

inner join
inner join会把 公共部分的数据查询出来
inner join查询结果

left join

select * from t1 left join t2 on t1.id = t2.id;

left join
left join查询出来的 结果和前表记录数一样多,后表如果没有对应记录,则列为空
left join查询结果

right join

right join能转化为left join,例如:

select * from t1 right join t2 on t1.id = t2.id;

能转化为

select * from t2 left join t1 on t1.id = t2.id;

只是前表发生了变化而已。


大伙可结合自己的业务场景,选择正确的join。

### LEFT JOIN 使用方法 在 SQL 数据库查询中,`LEFT JOIN` 是一种用于连接两个或更多表的关键字。此关键字的特点是从左表返回所有记录,即使右表中没有匹配的记录也会显示出来,在这种情况下,来自右表的结果将包含 NULL 值。 #### 语法结构 基本 `LEFT JOIN` 的语法如下所示: ```sql SELECT column_name(s) FROM table_name1 LEFT JOIN table_name2 ON table_name1.column_name = table_name2.column_name; ``` 这里展示了如何通过指定列名来执行联接操作[^4]。 #### 实际应用案例 考虑有两张表格分别为 `A` 和 `B`,其中每张表都有一个共同字段 `aID` 或者 `bID` 来表示关联关系。为了获取所有来自于 `A` 表的数据以及与之对应的 `B` 表中的数据(如果有),可以按照下面的方式编写查询语句: ```sql SELECT * FROM A LEFT JOIN B ON A.aID = B.bID; ``` 这段代码将会返回 `A` 表内的全部行数,并尝试找到对应于这些行的 `B` 表里的条目;对于那些找不到配对的情况,则会在结果集中填充相应的空白处为 NULL 值[^1]。 另外还可以进一步扩展到多表之间的复杂查询场景下,比如三个表之间做左外连接: ```sql SELECT a.name, b.name AS parentName, c.name AS childName FROM join1 AS a LEFT JOIN join2 AS b ON a.id = b.parentid LEFT JOIN join3 AS c ON a.id = c.id; ``` 上述例子说明了当存在多个层次的关系时,可以通过连续使用 `LEFT JOIN` 来实现跨多个级别的数据检索[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值