Sql在WHERE子句中选择空值和非空值
问题描述:
我想运行一个查询,使用WHERE子句从表中选择值,查询只返回所有条件都有值的行,锄头我会去返回也是null的值?Sql在WHERE子句中选择空值和非空值
Language Table Students Table
ID Language ID Student LanguageID
1 English 1 Joe
2 Spanish 2 Mike 1
运行查询,如
Select student.ID , Student.Student , Language.language
FROM
Students, Language
WHERE
student.LanguageID = Language.id
的查询只返回单行学生迈克·我想返回即使语言设置为null,所有的学生。
答
你想是这样的:
select
student.id, student.student, language.language
from
student left join language
on student.languageid = language.languageid
答
WHERE student.LanguageID = Language.id或student.LanguageID IS NULL
答
你应该不要使用逗号语法来连接表。使用JOIN或在这种情况下,LEFT OUTER JOIN(这在几乎所有的DBMS可缩短至左连接)的ISO语法:
Select Student.Id, Student.Student. Language.Language
From Students
Left Join Language
On Language.Id = Student.LanguageId
这将返回所有的学生和他们的语言,如果他们有一个或NULL如果他们没有一个。