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

时间:2010-05-22 20:48:21

标签: sql ms-access ms-access-2007

我有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

当我尝试按以下方式创建查询时,公司表是一个链接表

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

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

3 个答案:

答案 0 :(得分:3)

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

那应该为你解决问题。

答案 1 :(得分: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;

答案 2 :(得分:1)

关于你的第一个错误:

  

表达式中的类型不匹配

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

Companies.com_id
cash_credit.com_id
cheque_credit.com_id

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

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

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