PHP语言面试之复杂MySQL语句的编写
小标 2018-07-26 来源 : 阅读 1028 评论 0

摘要:本文主要向大家介绍了PHP语言面试之复杂MySQL语句的编写,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

本文主要向大家介绍了PHP语言面试之复杂MySQL语句的编写,通过具体的内容向大家展示,希望对大家学习php语言有所帮助。

真题

有A(id,sex, par, cl, c2)、B(id,age,c1,c2)两张表,其中A.id与B.id关联,现在要求写出一条SQL语句,将B中age>50的记录的c1,c2更新到A表中统一记录中的c1,c2字段中。

update A,B set A.c1 = B.c1, A.c2=AB.c2 where A.id=B.id and B.age > 50;

# 连接

update A inner join B on A.id=B.id set A.c1 = B.c1, A.c2=AB.c2 where B.age > 50;

MySQL的关联update操作

关联更新:

update A,B set A.c1 = B.c1, A.c2=AB.c2 where A.id=B.id

# 连接

update A inner join B on A.id=B.id set A.c1 = B.c1, A.c2=AB.c2 where  ...

延伸:MySQL的关联查询语句

六种关联查询:

· 交叉连接(cross join)

· 内连接(inner join)

· 外连接(left join/right join)

· 联合查询(union/union all)

· 全连接(full join):MySQL中不支持

交叉连接(cross join)

select * from A,B(,C)

# 或者

select * from A cross join B(cross join C)

没有任何关联条件,结果是笛卡尔积,结果集会很大,没有意义,很少使用。

内连接(inner join)

select * from A,B where A.id = B.id

# 或者

select * from A inner join B on A.id = B.id

多表中同时符合某种条件的数据记录的集合

分类:

· 等值连接:on A.id = B.id

· 不等值连接:on A.id > B.id

· 自连接:select * from A T1 inner join A T2 on T1.id = T2.pid

inner join可以缩写成join。

外连接(left join/right join)

左外连接:left outer join,已左表为主,先查询出左表,按照on后的关联条件匹配右表,没有匹配到的用NULL填充,可以简写成left join。

右外连接:right outer join,已左表为主,先查询出右表,按照on后的关联条件匹配左表,没有匹配到的用NULL填充,可以简写成right join。

联合查询(union/union all)

select * from A union select * from B union ...  

把多个结果集集中在一起,union前的结果为基准,需要注意的是联合查询的列数要相等,相同的记录行会合并。

如果使用union all,不会合并重复的记录行。

全连接(full join):MySQL中不支持

MySQL实现全连接,可以使用left join和 union和right join联合使用。

select * from A left join B on A.id =B.id union select * from A right join B on A.id = B.id

嵌套查询

建议使用,结果不好把控

用一条SQL语句的结果作为另外一条SQL语句的条件

select * from A where id in (select id from B)

以上就介绍了PHP的相关知识,希望对PHP有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言PHP频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程