我有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
我很困惑导致所有这一切的问题在哪里
答案 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 JOIN
和INNER JOIN
之间的区别在于左表中的行与右表中的任何行都不匹配:
LEFT JOIN
:返回右表中值为NULL的行INNER JOIN
:不返回行