您现在的位置是:首页 > 运维桌面运维
MYSQL多表查询方法诠释
阿龙2022-11-14【桌面运维】人已围观
三个方法与三个方法的不同之处
1,inner join 表名 on 相似条件 (等值连接) 只返回两个表中联结字段相等的行
2,left join 表名 on 相似条件 (左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
3,right join 表名 on 相似条件 (右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
例:
1,inner join 表名 on 相似条件 (等值连接) 只返回两个表中联结字段相等的行
2,left join 表名 on 相似条件 (左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
3,right join 表名 on 相似条件 (右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
例:
表A记录如下:
aID aNum
1 a20050111
2 a20050112
3 a20050113
4 a20050114
5 a20050115
表B记录如下:
bID bName
1 2006032401
2 2006032402
3 2006032403
4 2006032404
8 2006032408
sql语句如下:
select * from A
left join B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
5 a20050115 NULL NULL
sql语句如下:
select * from A
right join B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
NULL NULL 8 2006032408
sql语句如下:
select * from A
innerjoin B
on A.aID = B.bID
结果如下:
aID aNum bID bName
1 a20050111 1 2006032401
2 a20050112 2 2006032402
3 a20050113 3 2006032403
4 a20050114 4 2006032404
左连以左表为主,右连以右表为主,等值连以相同为主,以上三个查询案列很直观。
很赞哦! ()