• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 3年前 (2022-01-24) 19次浏览 已收录 0个评论

跟燕十八学习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;
+——+——+—–/本2文来源[email protected]搞@^&代*@码2网搞gaodaima代码-+——+
| 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

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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:和燕十八学习PHP-第二十八天-union用法深入讲解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址