在SQL查询中获取NULL作为结果
我有三张桌子:在SQL查询中获取NULL作为结果,sql,Sql,我有三张桌子: 教训 主题 问题: 我的问题是: 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.
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
是单个列中的值
如果是这种情况,那么您需要左连接
。这看起来像:
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
子句中。这是必需的,否则中的将过滤掉不匹配的行。非常感谢您,您的指导真的很有必要。