例如,我有以下表格:
表一:
-------------------------
| UID | Date |
-------------------------
| John | 2 |
| mark | 4 |
-------------------------
表二:
-------------------------
| UID | Date |
-------------------------
| smith | 1 |
| Nork | 3 |
-------------------------
我期望的结果是按日期排序:
----------
| smith |
| John |
| Nork |
| mark |
----------
我试过:
(SELECT UID
FROM table1
ORDER BY DATE DESC
LIMIT 16)
UNION
(SELECT UID
FROM table2
ORDER BY DATE DESC
LIMIT 16)
但它打印的结果是,它首先得到表1和所有行,然后转到表2。
2条答案
按热度按时间jjhzyzn01#
我尝试使用mysql数据库,比如这些数据。它工作得很好。请试试这个:
b0zn9rqh2#
在查询中,分别对表中的每个结果集进行排序,以对检索到的行应用限制。
如果希望保留合并结果集的顺序,则需要再次应用它。为此使用子查询。你需要通过
date
为了能进一步做到这一点,我修改了UNION
成为UNION ALL
因为我们不需要在这个层次上应用它。在更高级别添加DISTINCT
将照顾独特的价值观。