2016-11-22 123 views
1

我有两个表。MS Access INNER/LEFT JOIN NULL值

第一个是:项目表

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值产生的。我也尝试过左连接,并得到了同样的错误。

我发现this question但该解决方案在Access中显然不起作用。

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

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

感谢

+1

在内部联接你'Type'但不是这应该是'pType'? – Todd

+1

是因为你需要INNER JOIN pType(而不是Inner Join Type)吗? –

+1

'LEFT JOIN'有什么问题? – Comintern

回答

1

我相信你想留在加盟的P型

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

是的,你说的对,左边的连接应该可以工作。但这里的问题是一个错字。谢谢! –