gpt4 book ai didi

mysql - 如何用左连接替换 group by?

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

我写了这段代码:

SELECT DISTINCT c.deptid Dept, 
c.id Course,
t.startdate
FROM course c
LEFT JOIN section s
ON courseid = c.id
LEFT JOIN term t
ON termid = t.id
AND t.startdate < '2011-4-1'
GROUP BY course
HAVING t.startdate IS NULL
ORDER BY dept,
course;

我需要仅使用 join 或 left join 来摆脱 group by 和聚合函数。左连接正在创建一个额外的空行,我不知道如何在没有分组依据的情况下解释这一点。任何有关重写此内容的帮助将不胜感激。

编辑:此代码有效。这不是问题。问题是我不允许使用 group by 或任何聚合函数。

最佳答案

我不确定这是否可以解决您的问题,但是您的查询应该如下所示:

SELECT c.deptId as Dept, c.id as Course, startDate
FROM Course c LEFT JOIN
Section s
ON courseId = c.id LEFT JOIN
Term t
ON termId = t.id AND startDate < '2011-04-01'
WHERE startDate IS NULL
GROUP BY course
ORDER BY Dept, Course;

以下是更改:

  • distinct 是不必要的,因为您正在执行group by
  • 日期采用 YYYY-MM-DD 格式(ISO 标准)
  • NULL 日期的比较已移至 where 子句
  • group by 语句使用类(class)的 id 列
  • 列别名由 as 引入(为了便于阅读)

关于mysql - 如何用左连接替换 group by?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22003614/

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