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 JOIN
和 INNER JOIN
之间的区别在于,如果左表中有一行与右表中的任何行都不匹配:
LEFT JOIN
:为右表中的值返回带有 NULL 的行
INNER JOIN
: 不返回行
【讨论】:
以上是关于Access 拒绝使用链接表运行查询?的主要内容,如果未能解决你的问题,请参考以下文章