从SQL转换MS Access时出现语法错误

从SQL转换MS Access时出现语法错误,sql,database,ms-access,join,syntax-error,Sql,Database,Ms Access,Join,Syntax Error,从我先前的问题 我现在正试着把这个放进access 代码来自链接上的答案1,复制和粘贴完全相同,除了放置leftcitycode 2,而不是substringcitycode 2 尝试运行此命令时,现在出现语法错误 第一个是联接操作中的语法错误 做了一些研究并修改了代码。然后是不支持的JOIN表达式 我读了这篇文章 现在我想我已经把范围缩小到了语法错误,查询表达式'provincecode=x.provincecode和customers.city=x.citycode中缺少运算符,其中类别类

从我先前的问题

我现在正试着把这个放进access

代码来自链接上的答案1,复制和粘贴完全相同,除了放置leftcitycode 2,而不是substringcitycode 2

尝试运行此命令时,现在出现语法错误

第一个是联接操作中的语法错误

做了一些研究并修改了代码。然后是不支持的JOIN表达式

我读了这篇文章

现在我想我已经把范围缩小到了语法错误,查询表达式'provincecode=x.provincecode和customers.city=x.citycode中缺少运算符,其中类别类似'SC'

现在,所有这些都可以在SQL中工作。我需要在access中使用它,因为我的db是.mdb。 输出应仅为一行:

我不知道我的陈述中的错误在哪里

SELECT * from (SELECT * from City  where Provincecode like 'EC' and citycode in 
(select citycode from city  where left(citycode,2) not like 'bx')) 
as x inner join customers on (province = x.provincecode and
customers.city=x.citycode where category like 'SC')
正如我所说的,这在SQL中工作,它得到一行代码。
但是当涉及到访问时,它会出错

将以下内容另存为查询: 从省代码(如“EC”和城市代码)所在的城市中选择* 从leftcitycode所在的城市中选择citycode,2与“bx”不同

然后编写第二个查询,将第一个查询与customers表连接起来


顺便说一句:当您使用LIKE时,您必须使用通配符,例如*或?

我不确定您为什么要在city表上执行第一个子选择以应用第二个子句,我可能忽略了一些内容,但此查询是否足够:

SELECT A.*
FROM City As A, Customers As B
WHERE A.Provincecode like 'EC*'
AND Left(A.citycode, 2) not like 'bx*'
AND B.category like 'SC*'
AND B.province = A.provincecode
AND B.city = A.citycode

可能我没有数据要检查:

SELECT * 
from (
    SELECT * 
    from City  
    where Provincecode like 'EC' and citycode in (
        select citycode 
        from city  
        where left(citycode,2) not like 'bx'
    )
) as x 
inner join customers on customers.province = x.provincecode and customers.city=x.citycode
where x.category like 'SC'
这里不需要括号,只使用了单连接。如果有更多联接,则一般语法为:

select ...
from ((
    table1
    join table2 on ...)
    join table3 on ...)
    join table4 on ...
where ...

很抱歉你能详细说明一下吗。我试着从查询1中选择*加入省内客户,如provincecode和customers.city,如citycode,类别如“SC”。是这样吗?很抱歉,尚未使用访问权限。客户需要access数据库,您应该使用access查询设计器来完成。这样Access将为您编写SQL语法。@NicholasAysen我不知道您为什么要改变接受方式,我还试图通过演示不需要嵌套子查询来帮助您,了解SQL和学习最佳实践是值得的,因为子查询通常会降低性能。