【问题标题】:MS Access INNER/LEFT JOIN on NULL valuesMS Access INNER/LEFT JOIN 对 NULL 值
【发布时间】:2017-04-06 15:19:54
【问题描述】:

我有两张桌子。

第一个是:项目表

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

第二个是:pType Table

 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" 数据库。

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

谢谢

【问题讨论】:

  • 在内部连接中有Type,但这不应该是pType吗?
  • 是 mit 因为您需要 INNER JOIN pType(而不是 Inner Join Type)?
  • LEFT JOIN 有什么问题?
  • 哦,是的,这是一个简单的错字。得睡一觉了……

标签: sql excel vba ms-access join


【解决方案1】:

我相信你想在 pType 上离开加入

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

【讨论】:

  • 是的,你是对的,左连接应该可以工作。但这里的问题是一个错字。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-25
  • 1970-01-01
  • 2012-12-04
  • 2015-01-13
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
相关资源
最近更新 更多