Sql Access拒绝使用链接表运行查询?
我有3张桌子,每张如下Sql Access拒绝使用链接表运行查询?,sql,ms-access,ms-access-2007,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
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;
当我尝试创建查询时,companys表是一个链接表,如下所示
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
我不清楚导致这一切的问题在哪里列com_Id的数据类型在所有3个表中是否相同/一致?
如果不是,请更正数据类型并使其与该列一致
这将为您解决问题。关于您的第一个错误: 表达式中的类型不匹配 这意味着某些表达式中涉及的类型彼此不兼容。可能您正在连接两个具有不同类型的列。检查以下列的类型,以确保它们都具有相同的类型: Companies.com_id cash_credit.com_id cheque_credit.com_id Companies.com\u id cash\u credit.com\u id 支票\u credit.com\u id 关于不同类型的联接,由于您似乎不确定何时应使用它们: a和a之间的区别在于,如果左表中有一行与右表中的任何行都不匹配:
:返回右表中值为空的行LEFT JOIN
:不返回行内部联接
- 我想您可能需要:
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;
谢谢,我的错误是,我在现金信用卡和支票信用卡文本中都做了com_id,我想在这里把它们编号,再次感谢