我想寫一個連接另一個表的查詢,但在這種情況下,我需要使用子查詢中左表中某一列的值。這樣做,我收到一個錯誤,指出mySQL無法找到具有這樣一個名稱的列。使用左表中的值連接兩個表
首先,這裏是我的查詢引用兩個表(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 [email protected]
ORDER BY t1.name ASC
LIMIT 0 , 30
現在,當我執行這個查詢,這裏是返回的錯誤:#1054 - '字段列表'中的未知列't1.sortBy'
如果我用0 = 0替換t1.sortBy = 0,查詢執行得很好,所以它看起來像我只是似乎混淆了mySQL如何執行其操作順序?
是否有人可以澄清mySQL如何在這樣的查詢上執行操作的順序以及如何解決此問題?
錯誤表示'table1'中沒有'sortby'列。 – 2012-04-08 01:23:53
@ user1110302問題在圓括號內 - 爲什麼不把這部分移動到外部查詢? IF(t1.sortBy = 0,max(points),min(points))pointsValue – McGarnagle 2012-04-08 01:26:43