根据日期从多个MySQL表中提取行

时间:2014-06-12 16:17:13

标签: mysql date join

我有三个MySQL表,都有相同的列,如下:

ID | title   | description | date
---|---------|-------------|-----------
1  | Title 1 | Desc 1      | 2014-06-12
2  | Title 2 | Desc 2      | 2014-05-12
...

我想要做的是从所有三个表中提取所有行,其中日期在某一点之后,例如一个月之前,并按日期顺序排序,最新排序,新建,合并表。我已经尝试了各种JOINS,但到目前为止,我设法得出的结果都没有给我我需要的东西;我似乎得到的是彼此左或右连接的表格,而不是将行拉入一个主表格中。

我如何创建我正在寻找的桌子?

1 个答案:

答案 0 :(得分:1)

我不确定这里是否还有其他任何事情会让这更复杂,但我认为这应该有效:

SELECT * FROM table_1
JOIN table_2 ON table_2.id = table_1.id
JOIN table_3 ON table_3.id = table_1.id
WHERE table_1.date >= '2014-05-12' /*one month ago or whatever date you want*/
ORDER BY table_1.date, DESC

如果您想更改列名,请在SELECT

中执行此操作
SELECT table_1.id as t1_id, table_2.id as t2_id, /*etc*/