就需要用到union和union all关键字来实现这样的功能,union和union all的主要区别是union all是把结果集直接合并在一起,而
union 是将union all后的结果进行一次distinct,去除重复的记录后的结果。
两个一模一样的 语句 union all 得到的结果 是两份数据,你的问题是 union all 与 order by 不能一起使用
需要 改成:
1、
select * from (select * from mallbuilder_product where flash_sale=1 and FROM_UNIXTIME(end_time,'%Y-%m-%d %H:%m:%s')>NOW() ORDER BY flash_sale_date ASC) a
union all
select * from (select * from mallbuilder_product where flash_sale=1 and
FROM_UNIXTIME(end_time,'%Y-%m-%d %H:%m:%s')>NOW() ORDER BY
flash_sale_date ASC) b
或者
select * from (
select * from mallbuilder_product where flash_sale=1 and
FROM_UNIXTIME(end_time,'%Y-%m-%d %H:%m:%s')>NOW()
union all
select * from mallbuilder_product where flash_sale=1 and
FROM_UNIXTIME(end_time,'%Y-%m-%d %H:%m:%s')>NOW()
)ORDER BY
flash_sale_date ASC
还有,不明白的是,为什么要两个一样的语句 union all,没猜错的话, where 条件 =2
请参考下列sql语句select
(select count(*) from 用户表 where
状态='冻结') as 冻结用户数,
(select count(*) from 用户表 where
性别='男') as 男用户数
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)