发表于: 2017-09-15 22:23:27

1 718


今天完成的事情:

1:因为某些表,字段,业务逻辑有些疑问,以及原型图不完整,方案评审延期至下星期一

2:继续看mysql的书,学习mysql相关知识

3:制作小课堂(部分)



明天计划的事情:

制作完成小课堂,看书,改方案(如果需要)



遇到的问题:


收获:

1:外联结

内联结之外比较中重要的就是外联结

外联结也是通过on子句使用联结键将两张表进行联结,同时从两张表中选取相应的列.基本的使用方法并没有改变,只是结果却又所不同


外联结要点:
1:选取出单张表中全部的信息
外联结和内联结的结果相比,不同点显而易见:结果的行数不一样.比如内联结的结果有13行,而外联结可能就有15行.

对于外联结来说,只要数据存在于某一张表当中,就能够读取出来.也就是所有的数据都会显示出来,即使他某些字段为null


2:每张表都是主表吗?
外联结还有一个非常重要的点,就是要把哪张表作为主表.最终的结果中会包含主表内所有的数据.
指定主表的关键字是left和right.
使用left时from子句中写在左边的表是主表
使用right时右侧的表是主表
例子:
select SS.id,SS.shopname,SS.amount,S.money from shopshohin as SS inner join shohin AS S on SS.shohin_id=S.shohin_id;
from shohin as S left outer join shopshohin as SS

on S.id=SS.id


2:多表联结

通常联结只涉及两张表,但有时也会出现必须同时联结三张以上表的情况,原则上联结表的数量并没有限制.
在原本代码基础上,多加一份inner join和on xx.id=xxx.id


3:交叉联结

其实实际业务中很少使用交叉联结,不过交叉联结是所有联结运算的基础
交叉联结的集合运算符是cross join(笛卡儿积)
进行交叉联结时无法使用内联结和外联结中所使用的on子句,这是因为交叉联结是对两张表中的全部记录进行交叉组合,因此结果中的记录数通常是两张表中行数的乘积.假设一张表有8条记录,另一张表有13条记录,那么结果就包含13*8=104条记录



返回列表 返回列表
评论

    分享到