从MS转换的MS Access中的语法错误

时间:2013-06-18 06:10:58

标签: sql database ms-access join syntax-error

从我之前的问题 subqueries-on-subqueries

我现在正试图将其置于访问

代码来自链接上的答案一,复制并粘贴完全除了左侧(城市代码,2)而不是子串(城市代码,2)

试图运行这个我现在得到语法错误。

第一个是加入操作中的语法错误

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

我读过这篇文章"JOIN expression not supported" error caused by unbracketed JOIN expression comprising string condition

现在我觉得我已经把它缩小到查询表达式'省= x.provincecode和customers.city = x.citycode中的语法错误(缺少运算符),其类别如'SC'

现在这一切都在SQL中运行。我需要在访问中使用它,因为我的db是.mdb。 输出应该只有一行: enter image description here

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

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,它获得一行代码。 但是当谈到访问时,它就出错了

3 个答案:

答案 0 :(得分:0)

将以下内容保存为查询:     SELECT *来自City的省级代码,如'EC'和citycode in (从左边的城市选择城市代码(城市代码,2)不喜欢'bx')

然后编写第二个查询,将第一个查询与customers表

连接起来

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

答案 1 :(得分:0)

我不确定为什么你在城市表上执行第一个子选择来应用第二个子句,我可能忽略了一些东西,但这个查询是否足够:

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

答案 2 :(得分:0)

也许这个(我没有数据要检查):

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 ...