Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Access拒绝使用链接表运行查询?_Sql_Ms Access_Ms Access 2007 - Fatal编程技术网

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

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

我有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;
当我尝试创建查询时,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,我想在这里把它们编号,再次感谢