Sql 输入行214结尾的语法错误:o.MatchAdded DESC^

Sql 输入行214结尾的语法错误:o.MatchAdded DESC^,sql,Sql,我正试图加入动物收容所数据库中的两个查询,以便将狗的资料与潜在的收养者进行匹配。我一直收到一条错误消息(输入行214:o.MatchAdded DESC^末尾的语法错误),我不明白为什么它在其他地方都能工作,但它却不能工作 我已经挑出了每一个问题(狗方面,申请人方面),他们的工作。我使用这个查询只匹配了1个规范,它是有效的 SELECT a.sheltercode, a.animalname, a.animalage, (

我正试图加入动物收容所数据库中的两个查询,以便将狗的资料与潜在的收养者进行匹配。我一直收到一条错误消息(输入行214:o.MatchAdded DESC^末尾的语法错误),我不明白为什么它在其他地方都能工作,但它却不能工作

我已经挑出了每一个问题(狗方面,申请人方面),他们的工作。我使用这个查询只匹配了1个规范,它是有效的

 SELECT a.sheltercode,
       a.animalname,
       a.animalage,
       (
              SELECT sex
              FROM   lksex
              WHERE  id = a.sex) AS sex,
       (
              SELECT size
              FROM   lksize
              WHERE  id = a.size) AS size,
       (
              SELECT basecolour
              FROM   basecolour
              WHERE  id = a.basecolourid) AS color,
       s.speciesname,
       a.breedname,
       (
              SELECT NAME
              FROM   lksynun
              WHERE  id = a.isgoodwithcats) AS goodwithcats,
       (
              SELECT NAME
              FROM   lksynun
              WHERE  id = a.isgoodwithdogs) AS goodwithdogs,
       (
              SELECT NAME
              FROM   lksynun
              WHERE  id = a.isgoodwithchildren) AS goodwithchildren,
       (
              SELECT NAME
              FROM   lksynun
              WHERE  id = a.ishousetrained) AS housetrained,
       (
              SELECT animaltype
              FROM   animaltype
              WHERE  id = matchanimaltype) AS animaltype,
       (
              SELECT speciesname
              FROM   species
              WHERE  id =matchspecies) AS species,
       (
              SELECT breedname
              FROM   breed
              WHERE  id = matchbreed)AS breed,
       (
              SELECT breedname
              FROM   breed
              WHERE  id = matchbreed2) AS orbreed,
       (
              SELECT NAME
              FROM   lksynun
              WHERE  id = matchgoodwithcats) AS goodwithcats,
       (
              SELECT NAME
              FROM   lksynun
              WHERE  id = matchgoodwithdogs) AS goodwithdogs,
       (
              SELECT NAME
              FROM   lksynun
              WHERE  id = matchgoodwithchildren) AS goodwithchildren,
       (
              SELECT NAME
              FROM   lksynun
              WHERE  id = matchhousetrained) AS housetrained,
       (
                SELECT   o.ownername,
                         o.owneraddress,
                         o.hometelephone,
                         o.worktelephone,
                         o.mobiletelephone,
                         o.matchadded,
                         matchcommentscontain,
                         homecheckareas,
                         additionalflags,
                         (
                                    SELECT     af.value
                                    FROM       additional af
                                    INNER JOIN additionalfield aff
                                    ON         aff.id = af.additionalfieldid
                                    WHERE      aff.fieldname = 'ApplicantDogRestricted'
                                    AND        af.linkid = owner.id) AS applicantdogrestricted,
                         (
                                    SELECT     af.value
                                    FROM       additional af
                                    INNER JOIN additionalfield aff
                                    ON         aff.id = af.additionalfieldid
                                    WHERE      aff.fieldname = 'ApplicantDogHighEnergy'
                                    AND        af.linkid = owner.id) AS applicantdoghighenergy,
                         (
                                    SELECT     af.value
                                    FROM       additional af
                                    INNER JOIN additionalfield aff
                                    ON         aff.id = af.additionalfieldid
                                    WHERE      aff.fieldname = 'ApplicantDogPuppy'
                                    AND        af.linkid = owner.id) AS applicantdogpuppy,
                         (
                                    SELECT     af.value
                                    FROM       additional af
                                    INNER JOIN additionalfield aff
                                    ON         aff.id = af.additionalfieldid
                                    WHERE      aff.fieldname = 'ApplicantWeightRestriction'
                                    AND        af.linkid = owner.id) AS applicantweightrestriction,
                         createdby
                FROM     owner
                WHERE    matchactive = '1'
                AND      matchspecies = '1'
                AND      idcheck = '1'
                AND      additionalflags NOT LIKE '%Fosterer-Dog%'
                ORDER BY o.matchadded DESC 

我希望查询结果会是一份报告,按申请日期按降序列出申请者。中间有数据,但最后一列应该是满足搜索请求的狗的列表。

您错过了所有者的别名。在owner之后添加
o
,对于其他表,如
a、s
等,将其命名为别名

别名允许您在同一查询中多次使用表/列时区分表的名称。

什么是
o
(除其他外,
o.matchadded
)?您没有从表
o
中进行选择,也没有名为
o
的表、别名或子查询。与
a
s
相同。