“ where子句”中的未知列“ file.name”

时间:2018-10-25 02:21:03

标签: mysql sql

我已经在这个问题上坚持了将近一个星期,如果我不能尽快解决,可能会得到粉红色的纸条。因此,我将不胜感激。

“ column2 = table2.column2”似乎是罪魁祸首。

  SELECT (SELECT column2
            FROM (SELECT column3,
                         column2
                    FROM table2 AS table2Alias
                   WHERE column2 = table2.column2
                GROUP BY column2 COLLATE utf8_bin, column3
                ORDER BY COUNT(*),
                         column2 COLLATE utf8_bin) AS t
         GROUP BY column3
         ORDER BY COUNT(*),
                  column2 COLLATE utf8_bin
            LIMIT 1) AS t2
    FROM table2
   WHERE column1 IS NULL
GROUP BY column2

编辑:如何将嵌套的嵌套子查询移到外面一两个级别,以便它可以访问最外面的表的列?

编辑2:由于明显的原因,列的名称已更改。我实际上并没有在实际代码中使用“文件”或“目录”。该代码与文件或目录无关。

编辑3:为防止混淆,我更改了名称。

2 个答案:

答案 0 :(得分:0)

我猜是这里的问题是 WHERE column2 = table2.column2 :那个阶段还没有定义table2.column。
您需要更改WHERE,以便它将过滤到最里面的SELECT

之外

答案 1 :(得分:0)

I would suggest that you rebuikd your query. <br />

当前最外面的select没有字段,因此大概将 select(select 更改为 select * from(select 可能会产生一些结果...
据我了解,您随着时间的推移建立了此查询,现在它的大部分逻辑已被深深隐藏。例如,子句“ where column1为null” 可能会进入最里面的select ...