다른 테이블을 조인하는 쿼리를 작성하려고하지만이 경우 하위 쿼리의 왼쪽 테이블에있는 열 중 하나의 값을 사용해야합니다. 그렇게하면 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 [email protected]
ORDER BY t1.name ASC
LIMIT 0 , 30
여기이 쿼리를 실행할 때 # 1054 - 'field list'의 't1.sortBy'알 수 없음 열
t1.sortBy = 0을 0 = 0으로 바꾸면 쿼리가 제대로 실행되므로 방금 그 것처럼 보입니다. mySQL이 작업 순서를 어떻게 수행하는지에 대해 혼란스러워하고있는 것 같습니다.
누군가이 질문에 대한 작업 순서를 mySQL에서 어떻게 처리하는지, 그리고이 문제를 해결할 수있는 방법을 분명히 할 수 있습니까?
오류는 'table1'에'sortby' 컬럼이 없다고 말합니다. –
@ user1110302 문제는 괄호 안에 있습니다.이 부분을 바깥 쪽 쿼리로 이동하지 않는 이유는 무엇입니까? IF (t1.sortBy = 0, max (points), min (points)) pointsValue – McGarnagle