2013-05-16 2 views
2

아래 표와 같이 하나의 테이블에 사용 가능한 단위 (재고)가 있으며 각 제품 범주의 재고 개수를 반환하려고합니다. 보조 테이블을 사용하여 설명 및 가격 등을 볼 수 있습니다.모호한 열 이름 오류 : SQL 개수, 조인, 그룹 by

아래 쿼리를 실행하면 "모호한 열 이름 'productID'가 표시됩니다."

내가 뭘 잘못하고 있니?

SQL 쿼리 :이 오류를 반환

select productID, count (stock)as available_count 
from product_units 
join product_type ON product_type.description = product_units.productID 
group by productID 

:

Ambiguous column name 'productID'.

테이블 제품 _을

productID description price 
101  tent   20.00 
102  xltent  50.00 

표 product_units

unitID productID stock 
1  101  1 
2  101  1 
3  101  1 
4  102  1 

orginal 한 SQL 쿼리 재고 수를 얻기 위해, 작동 :

select productID, count (stock)as available_count 
from product_units 
group by productID 

내가 R2 ColdFusion에서

+3

[무엇을 "모호한 열 이름"을 의미?] (http://databases.aspfaq.com/database/what-does-ambiguous-column-name- mean.html) – Leigh

+0

나는 여전히 같은 오류가 발생합니다. –

+0

고든 리노프 (Gordon Linoff)가 제안한대로 Caludi Sasi를 다시 작성 했습니까? –

답변

9

와 SQL Server 2008을 사용하고 난 당신의 오류 가능성이 높습니다 생각 "모호한 열 이름 '제품 ID'." 그리고, 나는뿐만 아니라 해당 필드에 있어야 가입 같은데요 :

select product_units.productID, count (stock)as available_count 
from product_units 
right outer join product_type ON product_type.productID = product_units.productID 
group by product_units.productID 

이 제품 유형에서 모든 정보를 선택하려면 제품 _ 테이블 사용에서

select product_units.productID, count (stock)as available_count 
from product_units 
join product_type ON product_type.productID = product_units.productID 
group by product_units.productID 

모든 행을 선택하려면 right outer join 테이블, 첫번째 집계를 수행 한 후 가입 :

select pt.*, pu.available_count 
from (select productId, count(stock) as available_count 
     from product_units 
     group by productId 
    ) pu join 
    product_type pt 
    on pt.productID = pu.productId; 
+0

네가 맞다. 내가 질문을 타이핑 할 때 나는 혼란 스럽다. 나는 그 문제를 바로 잡았다. 감사. –

+0

위 쿼리를 사용하여 모두를 선택하려면 가장 좋은 방법은 무엇입니까? –

+1

SELECT product_units. * ... (생각합니다) –