我的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”
它显示记录,但是每个援助
我很困惑它如何识别没有内连接的列(指定连接)但是当我做agegroup表的整个内部连接时,它加入很好,但是所有记录
有任何想法吗?谢谢
最佳答案 isue的原因是连接从左到右处理.在您的代码中,您有以下顺序:
INNER JOIN agegroup
ON agegroup.aid = users.aid
INNER JOIN users
因此,在ON agegroup.aid = users.aid中,您可以在用户表加入fray之前引用该用户表.
更改连接的顺序:
compuresults – >比赛 – >用户 – >年龄阶层