错误 "Unknown column in where clause" - 出了什么问题?



我正在使用MySQL Server 5.7,我有这个查询:

select 
    regDate,
    userID,
    t.teamID,
    login
from
    tbl_user u
inner join 
    tbl_team t on u.userID = t.userID
where
    regDate >= DATE_ADD(CURDATE(), INTERVAL -2 MONTH)
    AND 
    (
        select sum(transactions) from (
            SELECT count(*) as transactions FROM tbl_pp where (fromTeamID = t.teamID or forTeamID = t.teamID) and transactionDate >= u.regDate
            union all
            SELECT count(*) as transactions FROM tbl_psc where (fromTeamID = t.teamID or toTeamID = t.teamID) and transactionDate >= u.regDate
            union all
            SELECT count(*) as transactions FROM tbl_mp where (fromTeamID = t.teamID or forTeamID = t.teamID) and transactionDate >= u.regDate
        ) as all
    ) > 0

我收到此错误:

错误代码:1054。"where 子句"中的未知列"t.teamID"

我确定这只是一个小问题,但我现在无法得到它。并且列teamID存在于表 tbl_team 中。有人给我提示吗?

不能嵌套多个

查询深度的相关引用。 无论如何,您最好使用exists

select u.regDate, u.userID, t.teamID, u.login
from tbl_user u inner join 
     tbl_team t
     on u.userID = t.userID
where u.regDate >= DATE_ADD(CURDATE(), INTERVAL -2 MONTH) and
      (exists (select 1
               from tbl_pp p
               where t.teamID in (p.fromTeamID, p.forTeamID) and
                     p.transactionDate >= u.regDate
              ) or
       exists (select 1
               from tbl_psc p
               where t.teamID in (p.fromTeamID, p.toTeamID) and
                     p.transactionDate >= u.regDate
              ) or
       exists (select 1
               from tbl_mp p
               where t.teamID in (p.fromTeamID, p.forTeamID) and
                     p.transactionDate >= u.regDate
              )
     )

相关内容

  • 没有找到相关文章

最新更新