2014-06-10 2 views
0

나는이 작업을 수행하는 방법에 대해 잘 모르겠습니다. 테이블 Product1에서SqlDataSource의 SQL Join 쿼리

내가 가진 : 다른 테이블 Componets에서

Id, Code, Description, Group, Quantity, Unit, Cost, Note 

내가 가진 :

Id, Code, Description, Unit, Cost, Note 

내가 직면하고 문제가 해당 테이블 Components이 데이터를 항상 모든 열을 가지고있는 동안, 테이블 Product1은 "구성 요소"테이블에서 "설명, 단위 및 비용"과 관련된 데이터를 가져와야합니다. 이 표 "Product1"에서 기본적으로 코드, 수량, 그룹 및 메모 만 사용자에 의해 추가됩니다.

SqlDataSource에서 작성한 쿼리로이를 수행 할 수 있습니까? 어떻게해야하는지 잘 모르겠다. 나는 당신의 도움에 감사 할 것입니다.

SELECT 
    Product1.Code, Group, Quantity, Product1.Note 
FROM 
    dbo.Product1 
INNER JOIN 
    dbo.Components ON Components.Code = Product1.Code 

하지만 내가, 내가 Group, QuantityNote

+0

두 테이블에 나타나는 열을 선택할 때 테이블 별칭을 지정하거나 테이블 이름을 완전히 지정해야합니다. –

+0

질문에 대한 가장 최근의 편집으로 인해 귀하의 원래 문제가 완전히 변경되었습니다. –

+0

@NicholasV. 예, 맞습니다. 미안하지만 뭔가를하려고합니다. – Nullbyte

답변

2

먼저 '모호한'이유를 이해하십시오.

조인은 둘 다 동일한 열 이름을 가진 두 테이블에 있기 때문에. 이들 열의 테이블 이름을 지정하지 않았으므로 SQL 엔진은 해당 열의 원하는 테이블을 혼동합니다. 따라서 모호한 말입니다. 그냥 같은 별칭을 사용

GENERAL IDEA :

탭이 별명이라고
SELECT tab.id, tab.Name 

FROM TableName tab 

. 당신에 관하여

는 질문이 쿼리는 당신이 필요합니다

SELECT   prod.Code, 
       prod.Groupp, 
       prod.Quantity, 
       prod.Note, 
       comp.Description, 
       comp.Unit, 
       comp.Cost 

FROM   dbo.Product1 prod  
INNER JOIN  dbo.Components comp 
ON    comp.Code = prod.Code 
//Any Where conditions should follow here 

prodcomp이 별칭으로 사용하는 방법을 관찰한다. 그들은 당신에게 모호성을 일으키지 않을 것입니다.

희망이 도움이됩니다!

+0

감사합니다. 나는 무엇에 관한 사진인지 얻기 위해 시작했습니다. 쿼리에서 오류가 발생했습니다. 빨간색 밑줄 – Nullbyte

+0

으로 선택 항목의 모든 열을 쿼리를 실행 해 보셨습니까? 때때로 SQL Server는 재미있는 "빨간색 선"을 제공합니다. 그래서 쿼리를 실행 해보십시오 : –

+0

예 다시 한 번 해보았습니다. 이제는이 줄에만 오류가 있습니다 : com.Unit, 더 많은 부분에 식별자를 연결할 수 없습니다. – Nullbyte

3

테이블 Product1에서만 Code는, 그것은 당신의 필드 (의미 얻을 필요하지 않습니다

는 지금까지 내가 뭘하려 열) 코드와 참고가 두 테이블에 나타납니다. 따라서, 하나의 열을 인출되는 테이블의 하나 지적 테이블 접두어를 사용해야

SELECT Components.Code AS 'Components Code', Product1.Code AS 'Product Code', Groupp, Quantity, Components.Note AS 'Components Node', Product1.Note AS 'Product Note' 

FROM 
dbo.Product1 

INNER JOIN dbo.Components 
ON Components.Code = Product1.Code 

상기 입증 된 바와 같이, 하나는 여러 개의 항목을 포함 할 때 페치들에게 라벨을 제공한다.

+0

한편 나는 내 질문도 업데이트했습니다. 그러나 이런 방식으로 나는 데이터의 일부만 얻는다. – Nullbyte

+0

내가 필요로하는 것은 나에게 거의 도움이된다. 도와 주셔서 대단히 감사합니다. 나는 여기에서 나의 필요를 해결하려고 노력할 것이다. – Nullbyte

+0

기꺼이 도와 드리겠습니다 ... – sockfd