1

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

我现在正在尝试将其放入访问权限

该代码来自链接上的答案一,除了放置 left(citycode,2) 而不是 substring(citycode,2) 外,完全复制并粘贴

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

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

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

我读了这篇文章“不支持 JOIN 表达式”错误,这是由包含字符串条件的未括起来的 JOIN 表达式引起的

现在我想我已经把它缩小到查询表达式'province = x.provincecode and customers.city = x.citycode where category like 'SC'中的语法错误(缺少运算符)

现在这一切都在 SQL 中工作。我需要在访问中使用它,因为我的数据库是 .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 中有效,并且只需要一行代码。但是当涉及到访问时,它会出错

4

3 回答 3

0

将以下内容另存为查询:SELECT * from City where Provincecode like 'EC' and citycode in (select citycode from city where left(citycode,2) not like 'bx')

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

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

于 2013-06-18T07:12:40.347 回答
0

我不确定你为什么在 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
于 2013-06-18T07:40:50.463 回答
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 ...
于 2013-06-18T07:50:56.363 回答