이 내 쿼리의 문제가 일부입니다 실행에SQL - 파생 테이블에서 알 수없는 열
SELECT
(SELECT id FROM users WHERE name = 'John') as competitor_id,
(SELECT MIN(duration)
FROM
(SELECT duration FROM attempts
WHERE userid=competitor_id ORDER BY created DESC LIMIT 1,1
) x
) as best_time
,이 오류가 발생합니다 :
#1054 - Unknown column 'competitor_id' in 'where clause'
그것은 파생 테이블 'X'처럼 보인다 상위 쿼리 별칭 competitor_id
을 볼 수 없습니다. 파생 된 모든 테이블에서 사용할 수있는 일종의 글로벌 별칭을 만드는 방법이 있습니까?
WHERE 절에서 직접 하위 쿼리로 competitor_id
쿼리를 사용할 수는 있지만 별칭을 사용하지 않는 것이 좋습니다. 그러나 실제 쿼리가 훨씬 커지고 더 많은 하위 쿼리와 파생 테이블에 competitor_id
을 사용해야합니다. 동일한 하위 쿼리를 더 많이 사용하면 비효율적입니다.