mysql – SQL未知列,尽管它肯定存在 – SQL错误(1054)

我的sql存在问题,我正在尝试显示基于其年龄组的用户,将字符串与主键一起附加,但我只希望显示一个值

我相信它是这样的

SELECT users.gbpfid,
       users.aid,
       compresults.total,
       agegroup.aid AS aid2
FROM   compresults
       INNER JOIN competitions
               ON competitions.cid = compresults.cid
       INNER JOIN agegroup
               ON agegroup.aid = users.aid
       INNER JOIN users
               ON compresults.gbpfid = users.gbpfid
WHERE  competitions.compdate = (SELECT competitions.compdate
                                FROM   competitions
                                       INNER JOIN compresults
                                               ON compresults.cid =
                                                  competitions.cid
                                WHERE  compresults.gbpfid = users.gbpfid
                                ORDER  BY competitions.compdate DESC
                                LIMIT  1) 

但是这会引发这个错误

SQL Error (1054): Unknown column ‘users.aid’ in ‘on clause’

哪个我没有任何意义

当我删除
第5行的“on agegroup.aid = users.aid”

它显示记录,但是每个援助

《mysql – SQL未知列,尽管它肯定存在 – SQL错误(1054)》

我很困惑它如何识别没有内连接的列(指定连接)但是当我做agegroup表的整个内部连接时,它加入很好,但是所有记录

有任何想法吗?谢谢

最佳答案 isue的原因是连接从左到右处理.在您的代码中,您有以下顺序:

   INNER JOIN agegroup
           ON agegroup.aid = users.aid
   INNER JOIN users

因此,在ON agegroup.aid = users.aid中,您可以在用户表加入fray之前引用该用户表.

更改连接的顺序:

compuresults – >比赛 – >用户 – >年龄阶层

点赞