다음은 연합을 추가 한 이후로 작동하지 않는 쿼리의 스냅 샷입니다.UNION을 사용할 때 SQL 쿼리가 작동하지 않습니까?
SELECT fin05_usager.idUsager,
(SELECT sum(nombreReputation) as nombreReputation
FROM (SELECT SUM(nombreReputationGagner) as nombreReputation
FROM fin05_usager_reputation
WHERE fin05_usager_reputation.idUsager = fin05_usager.idUsager
GROUP BY fin05_usager_reputation.idUsager
UNION
SELECT SUM(cc_badge.valeurEnReputation) as nombreReputation
FROM cc_badge, fin05_usager_badge
WHERE fin05_usager_badge.idBadge = cc_badge.idBadge
AND fin05_usager_badge.idUsager = fin05_usager.idUsager) as repuUnion
) as repu
FROM fin05_usager
WHERE fin05_usager.idUsager = 6
오류가 있습니다 : # 1054 - 나는 fin05_usager.idUsager를 제거하고 직접 사용하는 경우 'where 절'
에서 알 수없는 열 'fin05_usager.idUsager' '6'이 작업을 수행합니다.
나는 fin05_usager_reputation 또는 cc_badge에서 다른 하나 fin05_usager_badge에서을 그 어느 경우 어떻게 (작동을 선택합니다.
을 찾는 것에 대해 노조에게 오류를 사용할 때 왜 노동 조합을 제거하고 단 하나의 2의 사용하는 경우 idUsager가 나타나고 노조없이 오류가 발견되지
스키마가 단순화 :
fin05_usager : idUsager의 INT (8)
fin05_usager_reputation : idUsager의 INT (8), nombreReputationGagn 어 INT (4)
cc_badge : idBadge의 INT (4) valeurEnReputation는 INT (4)
fin05_usager_badge : idUsager의 INT (8) idBadge의 INT (4)
참고
I 쿼리에서 직접 하위 쿼리를 수행 할 수 없습니다. 사실, 쿼리가 매우 크고 이미 그룹 등이 포함되어 있기 때문에 select의 하위 쿼리에서 사용해야합니다.
스키마 게시 –
여기 스키마가 단순화되었습니다. 쿼리는 모든 것이 내부/왼쪽 조인을 많이 포함하기 때문에 단순화 된 버전입니다. –
또 다른 대안은 subselect 쿼리를 뷰로 이동하고 뷰를 현재 쿼리에 조인하는 것입니다. –