Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于日期从多个MySQL表中提取行_Mysql_Date_Join - Fatal编程技术网

基于日期从多个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 ... 我想做的是从所有三个表中提取所有行,其中日期在某一点之后,例如,一个月前,并在新的组合表中按日期顺序排序,最新优先。我尝试了各种连接,

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

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(在我的回答中更新)来更改它们