这是一个很难解释的问题,让我们看看我是否可以。
我正在 mysql 中寻找一种方法,通过三个表中的不同pid选择最新的 5 个条目(按日期时间 desc 排序) 。
下面是一个例子。
TABLE1
*请注意,表 1 中的列 id 需要替换为 pid 以匹配其他表(选择 id 作为 pid)。
id* datetime
|-----|------------|
| 1 | 1/1/2000 |
| 2 | 2/1/2000 |
| 3 | 3/1/2000 | ← two
| 4 | 1/3/2000 | ← five
| 5 | 1/3/2000 |
表2
id pid datetime
|-----|-----|------------|
| 1 | 1 | 1/2/2000 |
| 2 | 1 | 1/2/2000 |
| 3 | 2 | 2/2/2000 | ← three
| 4 | 3 | 1/2/2000 |
| 5 | 5 | 1/4/2000 | ← four
表3
id pid datetime
|-----|-----|------------|
| 1 | 1 | 6/1/2000 | ← one
| 2 | 1 | 1/1/2000 |
| 3 | 1 | 1/1/2000 |
| 4 | 2 | 1/1/2000 |
| 5 | 3 | 1/1/2000 |
结果将是
pid datetime
|-----|------------|
| 1 | 6/1/2000 | ← one
| 3 | 3/1/2000 | ← two
| 2 | 2/2/2000 | ← three
| 5 | 1/4/2000 | ← four
| 4 | 1/3/2000 | ← five
我对mysql很陌生。我四处搜寻,这是迄今为止我想出的最好的,但这是完全错误的。谢谢您的帮助。
SELECT DISTINCT pid, datetime
from (SELECT id AS pid, datetime FROM table1
UNION
SELECT pid, datetime FROM table2
UNION
SELECT pid, datetime from table3) t
ORDER BY datetime DESC
LIMIT 5