我有三个MySQL表,都有相同的列,如下:
ID | title | description | date
---|---------|-------------|-----------
1 | Title 1 | Desc 1 | 2014-06-12
2 | Title 2 | Desc 2 | 2014-05-12
...
我想要做的是从所有三个表中提取所有行,其中日期在某一点之后,例如一个月之前,并按日期顺序排序,最新排序,新建,合并表。我已经尝试了各种JOINS
,但到目前为止,我设法得出的结果都没有给我我需要的东西;我似乎得到的是彼此左或右连接的表格,而不是将行拉入一个主表格中。
我如何创建我正在寻找的桌子?
答案 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*/