mysql - UNION 和 ORDER BY 的使用不正确?

如何在mysql中使用unionorder by

select * from _member_facebook 
inner join _member_pts 
ON _member_facebook._fb_owner=_member_pts._username 
where _member_facebook._promote_point = 9 
ORDER BY RAND() limit 2 
UNION ALL
select * from _member_facebook 
inner join _member_pts 
ON _member_facebook._fb_owner=_member_pts._username 
where _member_facebook._promote_point = 8 limit 3

给我错误

#1221 - Incorrect usage of UNION and ORDER BY

有人可以帮忙吗?

最佳答案

尝试:

(
  select 
    * 
  from 
     _member_facebook 
   inner join 
     _member_pts 
   ON 
     _member_facebook._fb_owner=_member_pts._username 
  where 
    _member_facebook._promote_point = 9 
  ORDER BY RAND() 
  limit 2
) 
UNION ALL
(
  select 
    * 
  from 
    _member_facebook 
   inner join 
    _member_pts 
   ON 
     _member_facebook._fb_owner=_member_pts._username 
  where 
    _member_facebook._promote_point = 8 
  limit 3
)

不过,我认为您应该将 ORDER BY 子句放在第二个查询的末尾

https://stackoverflow.com/questions/6732661/

相关文章:

mysql - SQL唯一varchar区分大小写问题

mysql - 在 Rails 迁移 (MySQL) 中,您能否指定新列的位置?

mysql - 如何将数据库从 Amazon RDS MySQL 实例导出到本地实例?

sql - ON子句中的MySQL未知列

mysql - 用大量测试数据填充数据库表

sql - 你能在 SQL 中定义 "literal"表吗?

mysql - 等于 (=) 和具有一个文字值的 IN 之间的性能差异

mysql - 如何更改 mysql 表列的默认值?

mysql - 什么是 MySQL "Key Efficiency"

mysql - 什么 MySQL 类型最适合 "price"列?