联合查询union注意事项

SELECT * FROM   (select id,gdname,restricted_purchase,original_price,price,pic,text,seckill,seckill_start,seckill_end,roof_placement,number from yh_goods 
                    where 
                        seckill_start<= '1586241657' 
                    and seckill_end >= '1586241657' 
                    and `del` = 0 
                    AND `status` = 1 
                    AND `seckill` = 1 
                    AND `roof_placement` = 1  
                    order by roof_placement asc,update_time desc limit 9999999999) as a
                union 
                (select id,gdname,restricted_purchase,original_price,price,pic,text,seckill,seckill_start,seckill_end,roof_placement,number from yh_goods 
                    where 
                        seckill_start<= '1586241657' 
                    and seckill_end >= '1586241657' 
                    and `del` = 0 
                    AND `status` = 1 
                    AND `seckill` = 1 
                    AND `roof_placement` != 1 
                    order by seckill_end asc,create_time desc limit 9999999999) as b
                union 
                (select id,gdname,restricted_purchase,original_price,price,pic,text,seckill,seckill_start,seckill_end,roof_placement,number from yh_goods 
                    where 
                         `del` = 0 
                    AND `status` = 1 
                    AND `seckill` = 1 
                    order by seckill_end desc,create_time desc limit 9999999999
                )   limit 0,20
image.gif

1、在使用union的子查询的时候只能给第一个取别名 其他的取别名会报语法错误

2、在子查询排序的时候 如果不写limit的话会过滤掉排序 因为写上limit 9999999方可解决

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。