开发工具与关键技术:SQL
作者:陈锦通
撰写时间:2019年6月26日星期三
join 用于根据两个表或多个表的列之间的关系,从这些表中查询数据
等值连接:
selectform 表名称 自定义名 cross join 表名称 自定义名
selectfrom 表名称 自定义名,表名称 自定义名
上面两个查询出来的含义都是一样的,都会查询笛卡尔值(两个表都关联起来,查询出来的条数是两个表的所有数据相乘)。
select * from 表名称1 自定义名1 ,表名称2 自定义名2 where 表名称1 表名称1里面的例名 = 某个值
意思是在结果值里面的筛选列名为某值的数据,
结果是在表名称1里面的某个值与表名称2里面的所有数据匹配
(表1里面的某个值与表2的值全部匹配)
(如果表2里面有20条数据那表1的每一个值都有20条表2的数据)
内连接:
inner join 关键字
select * from 表名称1 自定义名1 inner join 表名称2 自定义名2 on 自定义名1 列名=自定义名2
结果是返回能匹配上的数据
左连接:
left outer join (outer是可以省略的)
select * from 表名称1 自定义名1 left join 表名称2 自定义名2 on 自定义名1 列名=自定义名2
表名称1是左表,表名称2右表
(左连接概念是左表的数据完全保存在结果值里面的右表是匹配的上的就显示结果值,匹配不上的就为null)
(以左表为主体数据来匹配右表的数据)
(最少匹配的数据与左表里面的数据总数相等,就算一条也匹配不上他出现的数据最少与左表的数据总条数值相等)