第一步:首先介绍表连接分类(内连接,外连接,交叉连接)和连接方法(如下):
A)内连接:join,inner join
B)外连接:left join,left outer join,right join,right outer join,union
C)交叉连接:cross join
第二步:建表两张users表,success表
第三步,写SQL,测试结果
内连接(只有一种场景)inner join 或者join(两种方式结果相同)
sql语句
select u.*, s.* from users u join success s on u.id = s.id
或
select u.*, s.* from users u inner join success s on u.id = s.id
运行结果:
这种场景下得到的是满足某一条件的A,B内部的数据;正因为得到的是内部共有数据,所以连接方式称为内连接。
外连接(左连接,右连接),以左连接为例
左连接SQL语句:
select u.*,s.* from users u left outer join success s on u.id = s.id
或者
select u.*,s.* from users u left join success s on u.id = s.id
运行结果:
右连接SQL语句:
select u.*,s.* from users u right outer join success s on u.id = s.id
或者
select u.*,s.* from users u right join success s on u.id = s.id
运行结果:
左连接以左表为基表,查询左表所有数据以及关联的右表数据,如果右表没有关联数据以null补齐。
右连接以右表为基表,查询右表所有数据以及关联的左表数据,如果左表没有关联数据以null补齐。
交叉连接:cross join
SQL语句:
select a.*,b.* from users a cross join success b
运行结果:
这个时候会显示users表跟success表每条数据都连接一下的结果,这个就是笛卡儿积
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。