MS在NULL值上访问INNER / LEFT JOIN

时间:2016-11-22 19:55:30

标签: sql excel vba ms-access join

我有两张桌子。

第一个是:项目表

 ID |    SN    | pTypeID
----|----------|-------
 1  | project1 |   1 
 2  | project2 |   3
 3  | project3 |  NULL
 4  | project4 |  NULL

,第二个是: pType表

 ID |  Name   
----|---------
 1  | pType1 
 2  | pType2 
 3  | ptype3 

我想创建一个将返回以下内容的查询

 ID |    SN    |  Name
----|----------|--------
 1  | project1 | pType1 
 2  | project2 | pType3
 3  | project3 |  NULL
 4  | project4 |  NULL

以下是我的尝试:

SELECT Project.ID, Project.SN, pType.Name
FROM Project
INNER JOIN Type ON Project.pTypeID = pType.ID

但是我收到错误说"没有为一个或多个参数提供值"。

经过一些研究,我怀疑错误是由Project表中的NULL值产生的。我也试过了Left Joins并得到了同样的错误。

我找到了this question,但解决方案显然无法在Access中使用。

我在Excel中使用VBA执行此操作。我正在连接到Access" .accdb"使用ADODB连接的数据库。

这是我的问题:有没有有效的方法来实现我想要做的事情?

由于

1 个答案:

答案 0 :(得分:1)

我相信你想要继续加入pType

select p.id, p.sn, t.name 
from Project as p 
    left join pType as t on p.pTypeID = t.id;