gpt4 book ai didi

mysql - 带案例条件的左外连接

转载 作者:行者123 更新时间:2023-11-29 00:29:32 24 4
gpt4 key购买 nike

我的数据库有三个表,

Studentdata with columns studentid , studentname
Assessmentdata with columns studentid, attemptedondate
Activitydata with columns studentid, date

并且每个表行将每天使用当前时间戳进行更新。

需要帮助识别,最近的日期列应该在比较两个不同的表和两个不同的列中的 attemptedondate 和 date 这两个列之后获取日期。如果该列在 activitydata 和 assessmentdata 中都为空,则在如图所示,最近日期的预期输出为空。

left outer join应该是studentdata表,应该写在哪里?

预期的输出应该是,

Studentid   studentname      mostrecentdate
1 abc 2013-06-01 12:05
2 def 2013-05-02 02:03
3 kjr null

My current query is:
select S.StudentId,
S.StudentAccountName,
CASE WHEN Max(D.attemptedondate) >= Max(A.date) THEN Max(D.attemptedondate)
ELSE Max(A.date) END
as MOSTRECENTDATE
from activitydata A
join Studentdata S on A.StudentId=s.StudentID
join Assessmentdata D on S. StudentID =D. StudentID
group by S.StudentId,
S.StudentAccountName

最佳答案

尝试

SELECT s.studentid, s.studentname, 
NULLIF(GREATEST(COALESCE(a.max_date, 0),
COALESCE(b.max_date, 0)), 0) mostrecentdate
FROM Studentdata s LEFT JOIN
(
SELECT studentid, MAX(attemptedondate) max_date
FROM Assessmentdata
GROUP BY studentid
) a ON s.studentid = a.studentid LEFT JOIN
(
SELECT studentid, MAX(date) max_date
FROM Activitydata
GROUP BY studentid
) b ON s.studentid = b.studentid

SELECT s.studentid, s.studentname, mostrecentdate
FROM Studentdata s LEFT JOIN
(
SELECT studentid, MAX(max_date) mostrecentdate
FROM
(
SELECT studentid, MAX(attemptedondate) max_date
FROM Assessmentdata
GROUP BY studentid
UNION ALL
SELECT studentid, MAX(date) max_date
FROM Activitydata
GROUP BY studentid
) a
GROUP BY studentid
) b ON s.studentid = b.studentid

示例输出:

| STUDENTID | STUDENTNAME |      MOSTRECENTDATE |-------------------------------------------------|         1 |         abc | 2013-06-01 12:05:00 ||         2 |         def | 2013-05-02 02:03:00 ||         3 |         kjr |              (null) |

这是 SQLFiddle 演示

关于mysql - 带案例条件的左外连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17271349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com