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/3/html/87.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_Html_Sql_Xhtml - Fatal编程技术网

Mysql 从以前的最新记录中选择列

Mysql 从以前的最新记录中选择列,mysql,html,sql,xhtml,Mysql,Html,Sql,Xhtml,考虑以下MySQL表: 应用程序(包含所有用户的所有应用程序) 我错过了什么? TIA.它应该可以工作: SELECT user_id, date_of_application, status, coalesce(latest.score, 10) score FROM applications LEFT OUTER JOIN (SELECT user_id, score FROM applications a WHERE status = 'Ended' AND

考虑以下MySQL表:


应用程序(包含所有用户的所有应用程序)


我错过了什么?
TIA.

它应该可以工作:

SELECT user_id, date_of_application, status, coalesce(latest.score, 10) score
FROM applications
LEFT OUTER JOIN 
  (SELECT user_id, score 
   FROM applications a
   WHERE status = 'Ended' AND 
         date_of_application = (SELECT MAX(date_of_application)
                                FROM applications
                                WHERE status='Ended' AND user_id = a.user_id)) latest 
                                  ON latest.user_id = applications.user_id
WHERE status = 'Active'
ORDER BY date_of_application ASC
它应该在以下方面发挥作用:

SELECT user_id, date_of_application, status, coalesce(latest.score, 10) score
FROM applications
LEFT OUTER JOIN 
  (SELECT user_id, score 
   FROM applications a
   WHERE status = 'Ended' AND 
         date_of_application = (SELECT MAX(date_of_application)
                                FROM applications
                                WHERE status='Ended' AND user_id = a.user_id)) latest 
                                  ON latest.user_id = applications.user_id
WHERE status = 'Active'
ORDER BY date_of_application ASC

考虑到您希望分数基于最新的数据。 试试这个-

SELECT apps.user_id, apps.date_of_application, apps.status,
       IFNULL(
              (SELECT app.score 
              FROM applications app
              WHERE  app.user_id = apps.user_id
              AND app.status = 'Ended' 
              ORDER BY app.date_ended DESC
              LIMIT 1), 10) AS score
FROM applications apps
WHERE  apps.status = 'Active'
ORDER BY apps.score ASC,
         apps.date_of_application ASC 

考虑到您希望分数基于最新的数据。 试试这个-

SELECT apps.user_id, apps.date_of_application, apps.status,
       IFNULL(
              (SELECT app.score 
              FROM applications app
              WHERE  app.user_id = apps.user_id
              AND app.status = 'Ended' 
              ORDER BY app.date_ended DESC
              LIMIT 1), 10) AS score
FROM applications apps
WHERE  apps.status = 'Active'
ORDER BY apps.score ASC,
         apps.date_of_application ASC 

分数是最低的还是最晚的?@Juniad只考虑最晚的日期。分数可以是任何值(最高或最低)。我已经在这个基础上回答了。只需检查它是否适合你。分数应该是分数中最低的还是最晚的?@Juniad只考虑日期(最晚)。分数可以是任何值(最高或最低)。我已经在这个基础上回答了。检查一下它是否适合你。首先,感谢你的快速响应。稍微调整一下,你的答案就完成了预期的任务。唯一让我抓狂的是,当我运行你的代码时,分数的顺序表现得很奇怪(不是升序,也不是降序),而把“应用程序”按部分顺序留下。不过,把它拿出来(留给我的是按分数排序的ASC、应用程序ASC的日期)。首先,感谢您的快速响应。稍微调整一下,你的答案就完成了预期的任务。唯一让我抓狂的是,当我运行你的代码时,分数的顺序表现得很奇怪(不是升序,也不是降序),而把“应用程序”按部分顺序留下。但是,把它拿出来(留给我按分数排序的ASC,应用程序ASC的日期)解决了这个问题。
SELECT apps.user_id, apps.date_of_application, apps.status,
       IFNULL(
              (SELECT app.score 
              FROM applications app
              WHERE  app.user_id = apps.user_id
              AND app.status = 'Ended' 
              ORDER BY app.date_ended DESC
              LIMIT 1), 10) AS score
FROM applications apps
WHERE  apps.status = 'Active'
ORDER BY apps.score ASC,
         apps.date_of_application ASC