和燕十八学习PHP-第二十八天-union用法深入讲解

php中文网
发布: 2016-06-13 13:06:07
原创
1348人浏览过

跟燕十八学习PHP-第二十八天-union用法深入讲解




/** 
燕十八 公益PHP培训 
课堂地址:YY频道88354001 
学习社区:www.zixue.it 
**/






mysql> create table a (
    -> id char(1),
    -> num int
    -> )engine myisam charset utf8;
Query OK, 0 rows affected (0.17 sec)


mysql> 
mysql> insert into a values ('a',5),('b',10),('c',15),('d',10);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0


mysql> 
mysql> create table b (
    -> id char(1),
    -> num int
    -> )engine myisam charset utf8;
Query OK, 0 rows affected (0.17 sec)


mysql> 
mysql> insert into a values ('b',5),('c,15),('d',20),('e',99);
    '> \c
    '> '\c
mysql> insert into b values ('b',5),('c',15),('d',20),('e',99);
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0


mysql> select * from a;
+------+------+
| id   | num  |
+------+------+
| a    |    5 |
| b    |   10 |
| c    |   15 |
| d    |   10 |
+------+------+
4 rows in set (0.00 sec)


mysql> select * from b;
+------+------+
| id   | num  |
+------+------+
| b    |    5 |
| c    |   15 |
| d    |   20 |
| e    |   99 |
+------+------+
4 rows in set (0.00 sec)


mysql> #可用用左连接来做
mysql> select a.*,b.* from 
    -> a left join b on a.id=b.id;
+------+------+------+------+
| id   | num  | id   | num  |
+------+------+------+------+
| a    |    5 | NULL | NULL |
| b    |   10 | b    |    5 |
| c    |   15 | c    |   15 |
| d    |   10 | d    |   20 |
+------+------+------+------+
4 rows in set (0.00 sec)


mysql> #再把上面的结果看成一张临时表,再次from型子查询,计算a.num+b.num的和
mysql> #这个思路,课下同学们自己来试.如遇到坑,查 ifnull函数
mysql> #而且少了e, 只好左连 union 右连,再子查询
mysql> 
mysql> #换个思路,先把2张表的数据union到一块,再利用sum()函数来相加
mysql> select * from a;
+------+------+
| id   | num  |
+------+------+
| a    |    5 |
| b    |   10 |
| c    |   15 |
| d    |   10 |
+------+------+
4 rows in set (0.00 sec)


mysql> select * from b;
+------+------+
| id   | num  |
+------+------+
| b    |    5 |
| c    |   15 |
| d    |   20 |
| e    |   99 |
+------+------+
4 rows in set (0.00 sec)


mysql> select * from a
    -> union
    -> select * from b;
+------+------+
| id   | num  |
+------+------+
| a    |    5 |
| b    |   10 |
| c    |   15 |
| d    |   10 |
| b    |    5 |
| d    |   20 |
| e    |   99 |
+------+------+
7 rows in set (0.00 sec)


mysql> #再sum一下,
mysql> select id,sum(num) from (
    -> 
    ->  select * from a
    ->  union
    ->  select * from b
    ->  ) as tmp
    -> 
    -> group by id;
+------+----------+
| id   | sum(num) |
+------+----------+
| a    |        5 |
| b    |       15 |
| c    |       15 |
| d    |       30 |
| e    |       99 |
+------+----------+
5 rows in set (0.03 sec)


mysql> #c错了,不要去重复
mysql> select id,sum(num) from (
    -> 
    ->  select * from a
    ->  union all
    ->  select * from b
    ->  ) as tmp
    -> 
    -> group by id;
+------+----------+
| id   | sum(num) |
+------+----------+
| a    |        5 |
| b    |       15 |
| c    |       30 |
| d    |       30 |
| e    |       99 |
+------+----------+
5 rows in set (0.00 sec)


mysql> exit










燕十八老师太幽默了, 昨天的视频如下:

http://www.tudou.com/programs/view/ahol2js2cyy/


易语言学习手册 十天学会易语言图解教程  pdf版
易语言学习手册 十天学会易语言图解教程 pdf版

十天学会易语言图解教程用图解的方式对易语言的使用方法和操作技巧作了生动、系统的讲解。需要的朋友们可以下载看看吧!全书分十章,分十天讲完。 第一章是介绍易语言的安装,以及运行后的界面。同时介绍一个非常简单的小程序,以帮助用户入门学习。最后介绍编程的输入方法,以及一些初学者会遇到的常见问题。第二章将接触一些具体的问题,如怎样编写一个1+2等于几的程序,并了解变量的概念,变量的有效范围,数据类型等知识。其后,您将跟着本书,编写一个自己的MP3播放器,认识窗口、按钮、编辑框三个常用组件。以认识命令及事件子程序。第

易语言学习手册 十天学会易语言图解教程  pdf版 3
查看详情 易语言学习手册 十天学会易语言图解教程  pdf版

相关标签:
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号