我有2张桌子。
submission(submissionID, teamID)
team(teamID, teamNames)
我在团队中有2条记录:(2, john)
和(3, peter)
提交内容我有:(3,3)
当我使用它时:
select teamName, t.teamID
from team t
inner join submission s on t.teamID = s.teamID
where submissionID is null
它没有返回任何结果
我看到了null
时选择列的一些示例,但它对我不起作用。
答案 0 :(得分:2)
如果您尝试查找没有提交的团队,请使用外部加入:
select teamName, t.teamID
from team t
LEFT join submission s on t.teamID = s.teamID
where submissionID is null
提交中没有匹配行的团队仍会返回左连接,但联接表中的所有列都将为空。
where子句在进行连接后过滤结果,因此为连接表的非空列指定null将只返回错过的连接。
答案 1 :(得分:0)
我不确定mysql但是在oracle中你可以使用外连接 有三种类型的外连接
1.Left Outer Join 2.Right外部加入 3.Full外部加入
您可以使用完整的外部联接: -
从提交的完整外部联接团队中选择* on(t.teamID = s.teamID);