发表于: 2017-12-29 20:13:55
1 539
今天完成的内容:
(1)学习联表查询。
如果直接查俩个表,没有任何限制条件:
select * from t1,t2 = select * from t1 cross join t2
这种连接方式称交叉连接cross join,那么T1中的n条数据都会对应T2的m条数据,输出n*m条数据,交叉连接没有太大意义,一般避免这种查询。
内连接:inner join
如果内连接没有限制条件,那么他等同于交叉连接,如:
select * from t1 inner join t2 = select * from t1 cross join t2
加上条件
等值连接:如id相等
select * from t1 inner join t2 on t1.id = t2.id
输出t1,t2中id相等的数据行
不等连接:
select * from t1 inner join t2 on t1.id < t2.id
这里需要理解,举例:
不等连接输出结果集:
总之,内连接输出的结果集是表中符合条件的数据的 组合
外连接:left join,right join
left join 左外连接 即把左侧的表 符合条件的记录全部输出 右外连接同理
联合查询:union,union all
联合查询容易理解些,可理解为先后执行的两条sql语句,不过是输出一个结果集。
ps:表的字段数需要相同,并且相同记录会合并。
全连接:full join
mysql不能直接实现全连接,需要将内外连接,联合查询等组合起来:
(2)复盘评审指出问题:
方案不够完善,表的sql语句没有给出,sql语句越少越好
针对这些问题做出改进
明天的计划:完善方案,看动态sql语句
遇到的问题:暂无
收获:以上
评论