mysql - 同一张表上的简单 SQL Union 2 查询

标签 mysql sql subquery

<分区>

尝试获取 userid = 'me' 的所有行

然后是 userid <> 'me' 的 2 最新行

项目:

Userid time
other2   11
other3   10
me       10
me        8
other1    8
other3    7
me        6

would return

Userid  time
me        10
me         8
me         6
other2    11
other3    10

The results don't have to be in any order

(SELECT * FROM Items WHERE userid='me' )
UNION ALL
(SELECT * FROM Items  WHERE userid<>'me' 
ORDER BY time DESC  LIMIT 2)

这只输出 2 行

最佳答案

如上所示sql是正确的

(SELECT * FROM Items WHERE userid='me' )
UNION ALL
(SELECT * FROM Items  WHERE userid<>'me' 
ORDER BY time DESC  LIMIT 2)

Union All 连接两个查询,括号允许不同的 WHERE/ORDER BY/LIMIT 子句。
此处演示: http://sqlfiddle.com/#!9/ca405/1/0

关于mysql - 同一张表上的简单 SQL Union 2 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33337103/

相关文章:

mysql - 从终端或 shell 脚本制作 neo4j 命令

mysql - SQL - 按与 NOW() 的升序日期差排序

MySQL 左连接计数

SQLite COUNT 和 LEFT JOIN - 如何结合?

sql - 更新 SQL 中的多条记录

sqlite查询对子查询的结果进行简单的计算

mysql - 在 Mysql 中使用 Against 中的子查询进行全文搜索

PHP 函数不从外部文件打印

php - 如何在浏览器上查看从Mysql DB获取的多行字符串