从两个相同的表中获取前 10 条记录

Cha*_*man 1 mysql

假设我有两个相同的表,如下所示,其中包含不同的值。我想获得按日期排序的前 4 条记录。这 4 条记录应该是两个表的并集

示例表:

ID  userID  Date
1   1111    01/01/2018
2   1112    03/01/2018
3   1113    04/01/2018
4   1114    05/01/2018
5   1115    06/01/2018
6   1116    07/01/2018

ID  userID  Date
1   1117    02/01/2018
2   1118    03/01/2018
3   1119    05/01/2018
4   1120    06/01/2018
5   1121    07/01/2018
6   1122    08/01/2018
Run Code Online (Sandbox Code Playgroud)

预期输出:

ID  userID  Date
1   1111    01/01/2018
1   1117    02/01/2018
2   1112    03/01/2018
3   1113    04/01/2018
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到这个输出。任何帮助将不胜感激。

ype*_*eᵀᴹ 8

假设你不关心你得到的结果,你可以使用ORDER BY / LIMIT两次,一次在每个子查询中,然后第三次在主查询中。

这将比UNION来自两个表的普通查询更有效,然后LIMIt,因为它可以(Date)在两个表上使用索引:

    ( SELECT ID, UserID, Date 
      FROM table1 
      ORDER BY Date 
      LIMIT 4
    ) 
UNION ALL
    ( SELECT ID, UserID, Date 
      FROM table2 
      ORDER BY Date 
      LIMIT 4
    ) 
ORDER BY Date 
LIMIT 4 ;
Run Code Online (Sandbox Code Playgroud)