基于日期从多个MySQL表中提取行
我有三个MySQL表,都有相同的列,如下所示:基于日期从多个MySQL表中提取行,mysql,date,join,Mysql,Date,Join,我有三个MySQL表,都有相同的列,如下所示: ID | title | description | date ---|---------|-------------|----------- 1 | Title 1 | Desc 1 | 2014-06-12 2 | Title 2 | Desc 2 | 2014-05-12 ... 我想做的是从所有三个表中提取所有行,其中日期在某一点之后,例如,一个月前,并在新的组合表中按日期顺序排序,最新优先。我尝试了各种连接,
ID | title | description | date
---|---------|-------------|-----------
1 | Title 1 | Desc 1 | 2014-06-12
2 | Title 2 | Desc 2 | 2014-05-12
...
我想做的是从所有三个表中提取所有行,其中日期在某一点之后,例如,一个月前,并在新的组合表中按日期顺序排序,最新优先。我尝试了各种连接
,但到目前为止,没有一个结果能够满足我的需要;我得到的似乎是表之间的左或右连接,而不是将行拉入一个“主表”
我该如何创建我正在寻找的表呢?我不确定这里是否还有其他事情使这更复杂,但我认为这应该是可行的:
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 table_1.id as t1_id, table_2.id as t2_id, /*etc*/
除非表之间存在某种关系,否则“彼此的左或右连接”毫无意义。这是可行的,所以谢谢你,但是假设每个表中有六个条目,那么每个条目都会返回六个重复的结果。有没有办法避免这种行为?好的,没问题……但是如果你谈论的是列名,你可以通过as(在我的回答中更新)来更改它们