Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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_Sql - Fatal编程技术网

Mysql 选择两个表并按日期排序

Mysql 选择两个表并按日期排序,mysql,sql,Mysql,Sql,我试图列出两个表的最新更新doc\u to\u do和doc\u bug\u tracker下面是我的表结构 doc\u to\u do doc\u bug\u跟踪器 这是我当前的查询: $sth = $this->db->prepare('SELECT p.*, dtd.projects_id as dtd_projects_id, dtd.content as dtd_content, dtd.date_modified as dtd_date_modifi

我试图列出两个表的最新更新
doc\u to\u do
doc\u bug\u tracker
下面是我的表结构

doc\u to\u do

doc\u bug\u跟踪器

这是我当前的查询:

$sth = $this->db->prepare('SELECT p.*, 
        dtd.projects_id as dtd_projects_id, dtd.content as dtd_content, dtd.date_modified as dtd_date_modified,
        dbt.projects_id as dbt_projects_id, dbt.content as dbt_content, dbt.date_modified as dbt_date_modified 
        FROM `projects` p LEFT JOIN `doc_to_do` dtd ON p.id=dtd.projects_id 
        LEFT JOIN `doc_bug_tracker` dbt ON p.id=dbt.projects_id 
        where p.id="'.$project_id.'"');
那么现在如何按
date\u modified
从表
doc\u to\u do
doc\u bug\u tracker

这应该可以:

'SELECT x.* FROM 
(
    SELECT p.*, 
        dtd.projects_id as dtd_projects_id, dtd.content as dtd_content, dtd.date_modified as dtd_date_modified,
        dbt.projects_id as dbt_projects_id, dbt.content as dbt_content, dbt.date_modified as dbt_date_modified 
        FROM `projects` p LEFT JOIN `doc_to_do` dtd ON p.id=dtd.projects_id 
        LEFT JOIN `doc_bug_tracker` dbt ON p.id=dbt.projects_id 
        where p.id="'.$project_id.'"
) x
ORDER BY x.date_modified ASC'
要仅获取最新日期(与所有日期相反,按降序排列),请尝试以下操作:

SELECT
  p.id,
  MAX(GREATEST(dtd.date_modified, dbt.date_modified)) AS MaxDate
FROM projects p
LEFT JOIN doc_to_do dtd ON p.id = dtd.projects_id
LEFT JOIN doc_bug_tracker dbt ON p.id = dbt.projects_id
WHERE p.id = <project_id>
GROUP BY p.id
选择
p、 身份证,
最大值(最大值(dtd.date_修改,dbt.date_修改))作为最大值
来自项目p
p.id=dtd.projects\u id上的左JOIN doc\u to\u do dtd
p.id=dbt.projects\u id上的左连接doc\u bug\u tracker dbt
其中p.id=
按p.id分组
如果在
选择中需要其他列,请确保将它们包含在
分组中