gpt4 book ai didi

mysql - SQL 查询具有唯一值的列

转载 作者:行者123 更新时间:2023-11-29 02:03:10 25 4
gpt4 key购买 nike

我有一个看起来像这样的表

    courseid     session_date     title                 published
1 2012-07-01 Training Course A 0
1 2012-07-02 Training Course A 0
2 2012-07-04 Training Course B 1
2 2012-07-07 Training Course B 1
3 2012-07-05 Training Course C 1
3 2012-07-06 Training Course C 1
4 2012-07-07 Training Course D 1
4 2012-07-10 Training Course D 1

该表的每个 ID 和标题都有两个条目,因为 session_date 列显示类(class)的开始日期和结束日期。

我正在尝试创建一个查询,该查询将提取接下来的五门类(class)而不显示过去的任何类(class)。

我已经走到这一步了

    SELECT session_date, title, courseid
FROM table
WHERE published = 1 AND session_date > DATE(NOW())
ORDER BY session_date ASC LIMIT 0,5

这会从表中提取下五个类(class)日期的行,但它包括开始日期和完成日期,而我需要按开始日期排序的下五个类(class)。

我需要创建一个查询,为每个 courseid 提取最早的 session_date,但忽略具有相同 courseid 的最新 session_date 的行,但我完全不知道如何执行此操作。

如有任何帮助或建议,我们将不胜感激。

最佳答案

如果您按类(class)对结果进行分组并选择 MAX(session_date),您将获得与每门类(class)关联的最新日期(即完成日期):

SELECT   courseid, MIN(session_date) AS start_date
FROM `table`
WHERE published = 1
GROUP BY courseid
HAVING start_date > CURRENT_DATE
ORDER BY start_date ASC
LIMIT 5

查看 sqlfiddle .

关于mysql - SQL 查询具有唯一值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11336060/

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