mysql 学习记录-join

mysql 学习中会遇到关联查询, 这里记录一下关联查询的相关信息

1.创建两张表并插入 测试的数据 sql文件在    这里

两张表应该是这样的

mysql 学习记录-join_第1张图片

mysql 学习记录-join_第2张图片

2.join 分为下面这几种


mysql 学习记录-join_第3张图片


下面开始一一测试

1.内连接 inner(取 user1 和user2 两个表公共的部分)


mysql 学习记录-join_第4张图片

SELECT a.username,a.over,b.over from user1 a join user2 b on a.username=b.username

输出结果:



2.全外连接 full outer


mysql 学习记录-join_第5张图片

错误示范


full join 在mysql 中是不允许的 所以我们可以使用下面这个方法实现full join

SELECTa.username,a.over,b.overFROMuser1aleftJOINuser2bona.username=b.usernameunionallSELECTb.username,b.over,a.overFROMuser1aRIGHTjoinuser2bonb.username=a.username


mysql 学习记录-join_第6张图片



3.左外连接 left outer


mysql 学习记录-join_第7张图片

 SELECTa.username,a.over,b.overFROMuser1aLEFTjoinuser2bona.username=b.username

出现结果

mysql 学习记录-join_第8张图片


这个时候我们发现有很多空项  需要去掉这些空项


mysql 学习记录-join_第9张图片

SELECTa.username,a.over,b.overFROMuser1aLEFTjoinuser2bona.username=b.usernamewhereb.overisnotnull


4.右外连接 right outer

与左连接相对,基础表不同

5.交叉连接 cross

a表中有4条b表中有5条会又20条记录

SELECT*FROMuser1CROSSJOINuser2

你可能感兴趣的:(mysql 学习记录-join)