您的位置:首页 > 其它

利用 并运算 union / union all 纵向合并数据表

2016-03-10 17:05 232 查看
并运算,则是将两次查询结果给并起来,大致语法结构:

select xxx union select xxx

union:输出结果时去除重复项(当数据量很大时使用union去重的排序开销很大)

union all:将两个集合的并集全部输出

例如:

我有两张表:

shuoshuo_IDshuoshuo_usershuoshuo_contentshuoshuo_time
1aaa啦啦啦2015-06-20
2bbb哈哈哈2015-11-20
3ccc嘿嘿嘿2016-05-20
表1:shuoshuo_info

rizhi_IDrizhi_userrizhi_titlerizhi_contentrizhi_time
1aaalalala啦啦啦2015-06-20
2bbbhahaha哈哈哈2015-11-20
3cccheiheihei嘿嘿嘿2016-05-20
表2:rizhi_info

我们可以通过union all 的方法将这位用户发布过的内容做一个汇总,创建好一个视图,当我们要集中输出时,只要查找视图就好

select `shuoshuo_user` AS `user`,`shuoshuo_content` AS `content`,
`shuoshuo_time` AS `time` from `shuoshuoinfo`
union all
select `rizhi_user`,`rizhi_content` ,`rizhi_time` from `rizhiinfo`


我们要注意的是,在使用union时,前后两张表选择的字段数、每个字段的类型应该相同,最终生成表的字段名会以第一张表为准,所以我们用 as 给字段取一个别名,方便区分

补充点:

用text还是varchar:

一般在0-2005 用varchar,在8000以下用varchar(max),超过用 text类型

在增加记录的同时添加当前时间:

1.数据类型可以选择varchar 然后写入的时候用now(),要写明时间字段,并赋值now()

2.数据类型选择timestemp,加上默认值CURRENT_TIMESTAMP,不用给时间字段赋值,在数据库系统自动填上时间
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: