我正在尝试编写一个连接另一个表的查询,但在这种情况下,我需要在我的子查询中使用左表中的一列中的值。这样做时,我收到一条错误消息,指出 mySQL 找不到具有此类名称的列。
首先,这是我的查询,它引用了 2 个表(t1 和 t2)(@category 是从我的程序中插入的参数):
SELECT t1.incID, t1.name, t1.sortBy, SQ.person, SQ.pointsValue
FROM table1 t1
LEFT OUTER JOIN (
SELECT incID, person, IF( t1.sortBy=0, max(points), min(points) ) pointsValue
FROM table2
GROUP BY incID
) SQ ON SQ.incID = t1.incID
WHERE t1.category=@category
ORDER BY t1.name ASC
LIMIT 0 , 30
现在,当我执行此查询时,返回的错误如下:#1054 - 'field list' 中的未知列 't1.sortBy'
如果我将 t1.sortBy=0 替换为 0=0,则查询执行得很好,所以看起来我似乎对 mySQL 如何执行其操作顺序感到困惑?
有人可以澄清一下mySQL如何对这样的查询进行操作顺序以及我如何解决这个问题?