2013-04-16 1 views
1
)

중첩 쿼리를 사용하여 조건문에서 사용해야하는 테이블에서 필요한 값을 얻습니다. 나는이 시도 시간이 나는 그들을 통해 이동하지만, 그냥 내가 할 수있는 것 같다 때 나는 내 결과의 형식 열의 값을 얻을 수 있습니다외부 조건문에서 중첩 된 MySQL 쿼리의 값을 참조 (

SELECT 

(SELECT format FROM competition_stages WHERE comp_id = "5" AND rid = "24") AS format, 

a.tie_id, b.name AS team_a, b.team_id AS team_a_id, c.name AS team_b, c.team_id AS team_b_id, SUM(e.bonus) AS team_a_bonus, SUM(f.bonus) AS team_b_bonus, 

SUM(CASE 
    WHEN (a.team_a = e.team_id AND format = "0") THEN e.score 
END) as team_a_agg, 

SUM(CASE 
    WHEN (a.team_b = f.team_id AND format = "0") THEN f.score 
END) as team_b_agg 

FROM competition_tie a 

INNER JOIN teams b ON (a.team_a = b.team_id) 
INNER JOIN teams c ON (a.team_b = c.team_id) 

LEFT JOIN fixtures d ON (a.tie_id = d.tie_id) 
LEFT JOIN fixture_scores e ON (d.fx_id = e.fx_id AND a.team_a = e.team_id) 
LEFT JOIN fixture_scores f ON (d.fx_id = f.fx_id AND a.team_b = f.team_id) 

WHERE a.comp_id = "5" AND a.rid = "24" AND a.season_id = "5" 

GROUP BY a.tie_id 

ORDER BY a.tie_id ASC 

필드 목록에서 알 수없는 열 (형식)을 말하는 오류가 계속 에서 사용하려면 내 검색어 내에서 사용하지 마십시오.

당신의 도움에 감사드립니다!

+0

테스트를하기 위해 SQL 작성 및 삽입 문을 포함하는 것이 더 쉬울 수 있습니다. –

답변

0

하위 쿼리를 사용하는 대신 compet_stages 테이블을 쿼리에 조인하여 형식 열을 직접 참조 할 수 있습니다. competition_stages 테이블과 쿼리의 다른 테이블 사이에 어떤 관련성이 없다고 가정하면 적어도 두 가지 조건을 사용하여 테이블에 조인 할 수 있습니다. competition_stages 테이블. 다음과 같은 것 :

SELECT cs.format, a.tie_id, .... 
FROM competition_tie a ... 
INNER JOIN competition_stages cs ON cs.comp_id = "5" AND cs.rid = "24" 
+0

완벽! 이것은 정확하게 내가 필요로했던 것을했다. 감사 –