Access 拒绝使用链接表运行查询?

Posted

技术标签:

【中文标题】Access 拒绝使用链接表运行查询?【英文标题】:Access is refusing to run an query with linked table? 【发布时间】:2010-05-22 20:48:21 【问题描述】:

我有 3 个表,如下所示

cash_credit

Bank_Name-------in_date-------Com_Id---Amount
America Bank    15/05/2010      1       200
HSBC            17/05/2010      3       500

Cheque_credit
Bank_Name-----Cheque_Number-----in_date-------Com_Id---Amount
America Bank   74835435-5435    15/05/2010      2       600
HSBC           41415454-2851    17/05/2010      5       100

Companies
com_id----Com_Name
1         Ebay
2         Google
3         Facebook
4         Amazon

当我尝试创建如下查询时,Companies 表是一个链接表

SELECT cash_credit.Amount, Companies.Com_Name, cheque_credit.Amount
FROM cheque_credit INNER JOIN (cash_credit INNER JOIN Companies ON cash_credit.com_id = Companies.com_id) ON cheque_credit.com_id = Companies.com_id;

我收到一条错误消息,提示我的内部联接不正确,此查询是使用 Access 2007 查询设计创建的 错误是

Type mismatch in expression

然后我认为它可能是内连接所以我尝试了左连接,但我得到一个错误,这个方法没有使用

JOIN expression is not supported

我很困惑导致这一切的问题出在哪里

【问题讨论】:

【参考方案1】:

com_Id 列的数据类型在所有 3 个表中是否相同/一致? 如果不是,请更正数据类型并使其与该列一致。

这应该可以为您解决问题。

【讨论】:

谢谢,我的错误是我在 cash_credit 和 cheque_credit 文本中都输入了 com_id,我想在其中输入数字,再次感谢【参考方案2】:

我想你可能想要:

SELECT cash_credit.Amount, Companies.Com_Name, cheque_credit.Amount
FROM ( cheque_credit
INNER JOIN Companies 
ON cheque_credit.com_id = Companies.com_id)
INNER JOIN  cash_credit
ON cash_credit.com_id = Companies.com_id;

【讨论】:

【参考方案3】:

关于您的第一个错误:

表达式类型不匹配

这意味着某些表达式中涉及的类型彼此不兼容。可能您正在加入具有不同类型的两个列。检查以下列的类型,确保它们都具有相同的类型:

Companies.com_id cash_credit.com_id check_credit.com_id

关于不同类型的连接,您似乎不确定何时应该使用它们:

LEFT JOININNER JOIN 之间的区别在于,如果左表中有一行与右表中的任何行都不匹配:

LEFT JOIN:为右表中的值返回带有 NULL 的行 INNER JOIN: 不返回行

【讨论】:

以上是关于Access 拒绝使用链接表运行查询?的主要内容,如果未能解决你的问题,请参考以下文章