Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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/8/sorting/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
MySQL:Find";“最后修改”;从两个表中选择日期_Mysql_Sorting - Fatal编程技术网

MySQL:Find";“最后修改”;从两个表中选择日期

MySQL:Find";“最后修改”;从两个表中选择日期,mysql,sorting,Mysql,Sorting,我有两个MySQL表:tech\u requests和comments。我想在按“上次修改”日期排序的列表中显示每个技术请求一次,无论是技术请求创建日期还是与该技术请求相关的最新注释。我试图使用工会,但我被卡住了。任何想法都将不胜感激。以下是表格: CREATE TABLE `tech_requests` ( `id` int(11) NOT NULL AUTO_INCREMENT, `staff_member_id` int(3) NOT NULL, `date_time` dat

我有两个MySQL表:tech\u requestscomments。我想在按“上次修改”日期排序的列表中显示每个技术请求一次,无论是技术请求创建日期还是与该技术请求相关的最新注释。我试图使用工会,但我被卡住了。任何想法都将不胜感激。以下是表格:

CREATE TABLE `tech_requests` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `staff_member_id` int(3) NOT NULL,
  `date_time` datetime NOT NULL,
  `request` text NOT NULL,
  `building_id` int(2) NOT NULL,
  `technician_id` int(2) DEFAULT NULL,
  `completed` tinyint(1) NOT NULL,
  `subject` varchar(30) NOT NULL DEFAULT '',
  `category_id` int(2) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=203 DEFAULT CHARSET=utf8;

CREATE TABLE `comments` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `tech_request_id` int(11) NOT NULL,
  `technician_id` int(2) NOT NULL,
  `date_time` datetime NOT NULL,
  `comment` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=234 DEFAULT CHARSET=utf8;

你在找这样的东西吗

SELECT r.id, r.staff_member_id, ...,
       GREATEST(r.date_time, COALESCE(c.date_time, 0)) last_modified
  FROM tech_requests r LEFT JOIN 
(
  SELECT tech_request_id, MAX(date_time) date_time
    FROM comments c
   GROUP BY tech_request_id
) c
    ON r.id = c.tech_request_id
 ORDER BY last_modified

下面是演示

询问代码的问题必须证明对所解决的问题的最低理解。包括尝试的解决方案,为什么它们不起作用,以及预期的结果。如果一个技术请求可以有很多注释,那么你不能仅仅根据注释的
date\u time
订购一个技术请求,因为它可以有很多注释:)注意,很抱歉礼节不好也喜欢SQLFiddle演示,以前从未见过