1

有人可以向我指出此 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 语句突出显示为错误的来源。

错误是“从子句中的语法错误”

4

4 回答 4

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;
于 2013-08-20T14:10:37.227 回答
0

这似乎是一个访问限制,因为在访问中创建子查询并加入它可以完美地工作。

于 2013-08-20T15:26:46.090 回答
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;
于 2013-08-20T14:20:42.983 回答
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是保留关键字,如果您的字段必须与某些关键字命名相同,只需将它们括在方括号中,以便区分它们。

于 2013-08-20T14:36:52.050 回答