有人能指出这个sql语句中的错误吗?
SELECT CommTypes.Description, Intro.[Percent]
FROM CommTypes
LEFT JOIN
(
SELECT *
FROM IntroducerBasis
WHERE IntroducerBasis.IntroducerCode='AG'
AND IntroducerBasis.BasisNumber=1
) AS Intro
ON CommTypes.ID = Intro.CommTypeID;
该错误突出显示后续的SELECT语句作为错误的来源。
错误是“来自子句的语法错误”
答案 0 :(得分:2)
好吧,既然你只是从父表中返回一个值,为什么还需要子查询呢?
但是,请尝试在子查询中指定列而不是*
:
SELECT CommTypes.Description
FROM CommTypes
LEFT JOIN (
SELECT
field1,
field2
FROM IntroducerBasis
WHERE IntroducerCode='AG' AND BasisNumber=1) AS Intro
ON CommTypes.ID = Intro.CommTypeID;
答案 1 :(得分:0)
我不确定在MS-ACCESS中是否允许使用select语句的那种类型的连接。 试试这个:
SELECT CommTypes.Description, IntroducerBasis.Percent
FROM CommTypes
LEFT JOIN IntroducerBasis
ON CommTypes.ID = IntroducerBasis.CommTypeID
AND IntroducerBasis.IntroducerCode='AG'
AND IntroducerBasis.BasisNumber=1;
答案 2 :(得分:0)
SELECT CommTypes.[Description], Intro.[Percent]
FROM CommTypes
LEFT JOIN
(
SELECT *
FROM IntroducerBasis
WHERE IntroducerBasis.IntroducerCode='AG'
AND IntroducerBasis.BasisNumber=1
) AS Intro
ON CommTypes.ID = Intro.CommTypeID
Percent
是一个保留关键字,如果您的字段必须与某些关键字命名相同,只需将它们包装在方括号中,以便区分它们。
答案 3 :(得分:0)
这似乎是一个访问限制,因为在访问和加入中创建子查询可以很好地工作。