假设我有2个表,一个有3个字段(id,name,num),另一个有两个(id,num)。
t1:
1 | assassin | #1
1 | assassin | #2
2 | vampire | (null)
3 | zombie | #1
3 | zombie | #2
(null) | zombie | #3
4 | wizard | (null)
t2:
1 | #1
1 | #2
2 | (null)
3 | #1
3 | #2
(null) | #3
4 | (null)
我试图加入这些表:
SELECT t2.id, t1.name, t2.num
FROM t1
INNER JOIN t2 ON t2.id = t1.id
AND t2.num = t1.num
执行此语句时,该表仅显示没有空值的记录。为什么?加入这两个表的正确方法是什么?在两个条件下内连接表是否合适? (我正在使用vb.net& ms访问btw)。
答案 0 :(得分:1)
尝试使用Left Join
代替Inner Join
。
Inner Join
仅返回已加入的行。
Left Join
返回“左”表中的所有行,无论它们是否加入另一个表。
答案 1 :(得分:1)
您无法在inner join
null
上使用null
,因为null = null
与自身不匹配(outer join
返回false,IOW)。您需要使用{{1}}代替。