发表于: 2017-12-29 20:13:55

1 536


今天完成的内容:

(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语句

遇到的问题:暂无

收获:以上


返回列表 返回列表
评论

    分享到