这个Microsoft Access查询有什么问题?

时间:2010-10-26 21:29:28

标签: sql ms-access

考虑此Access查询:

SELECT prod_Parts.ID, prod_Parts.Number, prod_Parts.Revision, prod_Parts.Description
FROM prod_JT_Shipping 
INNER JOIN (prod_JobTraveller 
            INNER JOIN prod_Parts
                ON prod_JobTraveller.PartID = prod_Parts.ID) 
    ON prod_JT_Shipping.JT_ID=prod_JobTraveller.ID;

还有:

 SELECT prod_Parts.ID, prod_Parts.Number, prod_Parts.Revision, prod_Parts.Description 
 FROM prod_Parts;

两者都发生此错误:

  

'不是有效名称。确保它不包含无效字符或标点符号并且不会太长

如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

从错误消息判断,您在查询中有一些不可见的控制字符,这会导致问题。

尝试从头开始重新输入查询,这很可能会有效。

旁注:如果按顺序编写连接,我会发现更容易遵循连接(即在每个JOIN之后直接使用ON子句):

SELECT
  prod_Parts.ID, prod_Parts.Number, prod_Parts.Revision, prod_Parts.Description
FROM
  (
    prod_JT_Shipping
    INNER JOIN prod_JobTraveller ON prod_JT_Shipping.JT_ID=prod_JobTraveller.ID
  )
  INNER JOIN prod_Parts ON prod_JobTraveller.PartID = prod_Parts.ID 

答案 1 :(得分:1)

这部分看起来不正确:

INNER JOIN (prod_JobTraveller 
INNER JOIN prod_Parts ON prod_JobTraveller.PartID = prod_Parts.ID) 

如果你在没有空格的情况下合并它,它就像

INNER JOIN (prod_JobTraveller INNER JOIN prod_Parts ON prod_JobTraveller.PartID = prod_Parts.ID) 

哪个是无效的SQL。

答案 2 :(得分:0)

行。我简化了查询:

SELECT prod_Parts.ID,prod_Parts.Number,prod_Parts.Revision,prod_Parts.Description FROM prod_Parts;

同样的错误:)