从SQL转换MS Access时出现语法错误
从我先前的问题 我现在正试着把这个放进access 代码来自链接上的答案1,复制和粘贴完全相同,除了放置leftcitycode 2,而不是substringcitycode 2 尝试运行此命令时,现在出现语法错误 第一个是联接操作中的语法错误 做了一些研究并修改了代码。然后是不支持的JOIN表达式 我读了这篇文章 现在我想我已经把范围缩小到了语法错误,查询表达式'provincecode=x.provincecode和customers.city=x.citycode中缺少运算符,其中类别类似'SC' 现在,所有这些都可以在SQL中工作。我需要在access中使用它,因为我的db是.mdb。 输出应仅为一行: 我不知道我的陈述中的错误在哪里从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中缺少运算符,其中类别类
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和学习最佳实践是值得的,因为子查询通常会降低性能。