mysql - SQL 未知列,尽管它确实存在 - SQL 错误 (1054)

标签 mysql

我的 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”

它显示记录,但是对于每个辅助

enter image description here

我很困惑它如何识别没有内部连接(指定连接)的列,但是当我对年龄组表进行整个内部连接时,它连接正常,但包含所有记录

有什么想法吗?谢谢

最佳答案

您正在尝试在加入 users 表之前使用 users.aid 加入年龄组。

   INNER JOIN competitions
           ON competitions.cid = compresults.cid
   INNER JOIN agegroup
           ON agegroup.aid = users.aid
   INNER JOIN users
           ON compresults.gbpfid = users.gbpfid

如您所见,在加入之前您正在访问 users.aid。将连接顺序更改为:

competitions -> users -> agegroup

这应该有效:

   INNER JOIN competitions
           ON competitions.cid = compresults.cid
   INNER JOIN users
           ON compresults.gbpfid = users.gbpfid               
   INNER JOIN agegroup
           ON agegroup.aid = users.aid

您现在应该可以访问 users.aid。

希望这对您有所帮助。

关于mysql - SQL 未知列,尽管它确实存在 - SQL 错误 (1054),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35223099/

相关文章:

php - 在这种情况下如何转义引号?

php - 使用 MySQL 或 Laravel 限制与记录的关系数

php - 什么时候应该使用 MySQLi 而不是 MySQL?

mysql - MySQL 中是否可以聚合这样的行?

mysql - 错误 1005 (HY000) |无法创建表

java - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : Unknown database 'xyz'

php - 与 ISP 无关的速度测试

MySQL如何使用GROUP BY和BETWEEN?

php - 获取帖子数量最大的用户 Phalcon

php - Laravel 5.3,调用未定义的方法 Illuminate\Database\Query\Builder::links()