老师,单独表查询,在合并结果怎么理解啊
老师,单独表查询,在合并结果怎么理解啊,课程中的三表联查,需求是:查询商品表的id,和商品名,以及商品分类名,管理员名这样的需求,用单独查询这三张表方式,怎么处理?才能得到联表查询得到的效果呢
10
收起
正在回答
3回答
同学你好, 刚是老师的失误,缺少了一点内容,
关于合并数据,同学也可以使用联合查询union all关键字关联三张数据库表。如下所示:
select * from a union all select * from b union all select * from c;
不过有几条注意事项,如下所示:
union:联合的意思,即把两次或多次查询结果合并起来。
要求:两次查询的列数必须一致
列的类型可以不一样,但推荐查询的每一列,想对应的类型以一样
可以来自多张表的数据:多次sql语句取出的列名可以不一致,此时以第一个sql语句的列名为准。
如果不同的语句中取出的行,有完全相同(这里表示的是每个列的值都相同),那么union会将相同的行合并,最终只保留一行。也可以这样理解,union会去掉重复的行。
如果不想去掉重复的行,可以使用union all。
如果子句中有order by,limit,需用括号()包起来。推荐放到所有子句之后,即对最终合并的结果来排序或筛选。如:
(select * from a order by id) union (select * from b order id);
2. 课程中老师讲解是正确的, 多表联查的效率是没有单独表效率高。不过在结合使其语言时,会比较消耗内存。
3. 在后期使用框架时,会使用框架中的数据库关联,框架会进行处理提高效率,所以此时同学不需要深究。
祝学习愉快!
PHP小白零基础入门
- 参与学习 人
- 提交作业 626 份
- 解答问题 4930 个
想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星