从我之前的问题 subqueries-on-subqueries
我现在正试图将其置于访问
代码来自链接上的答案一,复制并粘贴完全除了左侧(城市代码,2)而不是子串(城市代码,2)
试图运行这个我现在得到语法错误。
第一个是加入操作中的语法错误
做了一些研究并改变了代码。然后来了 JOIN表达式不支持
现在我觉得我已经把它缩小到查询表达式'省= x.provincecode和customers.city = x.citycode中的语法错误(缺少运算符),其类别如'SC'
现在这一切都在SQL中运行。我需要在访问中使用它,因为我的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,它获得一行代码。 但是当谈到访问时,它就出错了
答案 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 ...