mysql 学习中会遇到关联查询, 这里记录一下关联查询的相关信息
1.创建两张表并插入 测试的数据 sql文件在 这里
两张表应该是这样的
2.join 分为下面这几种
下面开始一一测试
1.内连接 inner(取 user1 和user2 两个表公共的部分)
SELECT a.username,a.over,b.over from user1 a join user2 b on a.username=b.username
输出结果:
2.全外连接 full outer
错误示范
full join 在mysql 中是不允许的 所以我们可以使用下面这个方法实现full join
SELECTa.username,a.over,b.overFROMuser1aleftJOINuser2bona.username=b.usernameunionallSELECTb.username,b.over,a.overFROMuser1aRIGHTjoinuser2bonb.username=a.username
3.左外连接 left outer
SELECTa.username,a.over,b.overFROMuser1aLEFTjoinuser2bona.username=b.username
出现结果
这个时候我们发现有很多空项 需要去掉这些空项
SELECTa.username,a.over,b.overFROMuser1aLEFTjoinuser2bona.username=b.usernamewhereb.overisnotnull
4.右外连接 right outer
与左连接相对,基础表不同
5.交叉连接 cross
a表中有4条b表中有5条会又20条记录
SELECT*FROMuser1CROSSJOINuser2
网友评论