gpt4 book ai didi

sql - 结果在 SQL 查询中获取 NULL

转载 作者:行者123 更新时间:2023-12-04 20:43:52 25 4
gpt4 key购买 nike

我有三个表:

  1. 类(class)
  2. 主题
  3. 问题

我的查询:

SELECT    
LE.LessonId, LE.LessonName,
SUB.SubjectName,
QU.QuestionId, QU.QuestionName
FROM
Lesson LE
INNER JOIN
Subject SUB ON SUB.LessonId = LE.LessonId
INNER JOIN
Question QU ON QU.LessonId = LE.LessonId
WHERE
LE.LessonPageId = 1552
AND SUB.IsActive = 1
AND QU.IsActive = 1

由于 "Question" 表为 NULL,我得到了空结果。

但我想要结果,尽管 "Question" 表是 NULL。

提前致谢。

最佳答案

您没有得到“NULL”结果。您得到的是一个 结果集。 NULL 是单个列中的值。

如果是这种情况,那么您需要left join。这看起来像:

SELECT LE.LessonId, LE.LessonName, SUB.SubjectName,
QU.QuestionId, QU.QuestionName
FROM Lesson LE LEFT JOIN
Subject SUB
ON SUB.LessonId = LE.LessonId AND SUB.IsActive = 1 LEFT JOIN
Question QU
ON QU.LessonId = LE.LessonId AND QU.IsActive = 1
WHERE LE.LessonPageId = 1552;

一些评论。

当您使用 LEFT JOIN 时,您几乎应该将它用于所有连接(这并非总是如此,所有,但这是很好的指导)。 LEFT JOIN 保留第一个表中的所有行,即使 ON 条件会过滤结果。

另请注意,WHERE 子句中的两个条件已移至 ON 子句。这是必需的——否则 WHERE 会过滤掉不匹配的行。

关于sql - 结果在 SQL 查询中获取 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37071426/

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