0
选择执行后,我收到了错误“未知列‘点’在‘where子句’删除行时,子查询返回null
如何从包含空外部查询中删除行记录从子查询返回?(我需要使用子查询,因为我有需要运行到返回结果子查询的另一帮我后)
SELECT
s.student_name_first,
s.student_name_last,
(
SELECT sum(i.points)
FROM incidents i
WHERE i.student = s.id
) AS points
FROM students s
WHERE points IS NOT NULL
GROUP BY s.id
我也曾尝试,结果相同
SELECT
s.student_name_first,
s.student_name_last,
(
SELECT sum(i.points) AS points
FROM incidents i
WHERE i.student = s.id AND points IS NOT NULL
) AS p
FROM students s
GROUP BY s.id
在此先感谢
解决方案:
我一直在寻找的是HAVING
SELECT
s.student_name_first,
s.student_name_last,
(
SELECT COALESCE(sum(i.incident_points),0)
FROM incidents i
WHERE i.student = s.id
) as points
FROM students s
GROUP BY s.id
HAVING points > 0
Reword“防止在子查询上返回空记录”部分,因为删除外查询中包含空值的行是不相同的,因为防止子查询返回空值。 –
重写,希望可以帮助 –
好的,谢谢,我将我的答案与此表单无关。巴马尔的就足够了。 –