我正在尝试运行一个使用WHERE子句从表中选择值的查询,查询只返回所有条件都有值的行,我是否还要返回同样为null的值?
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
查询只为学生麦克风返回一行我想要返回所有学生,即使语言设置为空。
答案 0 :(得分:4)
你想要这样的东西:
select
student.id, student.student, language.language
from
student left join language
on student.languageid = language.languageid
答案 1 :(得分:3)
您不应使用逗号语法来连接表。使用JOIN的ISO语法,或者在这种情况下使用LEFT OUTER JOIN(几乎所有DBMS都可以缩短为Left Join):
Select Student.Id, Student.Student. Language.Language
From Students
Left Join Language
On Language.Id = Student.LanguageId
这将返回所有学生及其语言(如果他们有一个)或null,如果他们没有。
答案 2 :(得分:1)
答案 3 :(得分:1)
WHERE student.LanguageID = Language.id OR student.LanguageID IS NULL