2012-07-24 6 views
0

그래, SQL Server의 고급 사용에 비교적 익숙합니다.SQL Server : 여러 테이블/조건을 선택하십시오.

필자는 정보를 수집하는 데 필요한 여러 테이블을 가지고 있으며 이러한 테이블 중 일부는 특정 정보가 필요한 다른 테이블에 연결됩니다. 결과적으로, 나는 별칭으로 명명 된 우선 정보를 가진 하나의 행을 원할 뿐이다.

Tab_Transcoders : 예

ID, VideoCamID, InputStreamID, OutputStreamID. 

여기서 I이 행 다른 ID의이다 매칭 ID의 열을 필요로 다른 테이블 InputStream 링크 (예 속하는 StreamType_IDID_StreamTypeDescription 등을 포함하는 제 3 테이블

OutputStreamID과 동일,과 동일. 결국

, 내가 예를 들어이 포함 된 행을 필요

ID, VideoCamID, InputStreamID, InputStreamType, InputStreamTypeDesc, 
OutputStreamID, OutputStreamType, OutputStreamDesc, VideoCamID, etc. etc. etc. 

내 모든 스트림은 같은 테이블에 예로서, InputStreamID & OutputStreamID 링크를 별칭을 설정할 수 있습니다 나를 위해 중요하다 나열된 (함께 IP, Descs ..)

내가S & SUBSELECT S와 같이 수행 할 수 있지만 적절한 방법이라고 생각하지 않습니다.

나는 CURSOR, UNION, FETCH, JOIN 등등에 관하여 몇몇 정보를 읽었다. 그러나 나는 나의 목적을 위해 사용해야하는 것이 모른다.

엘리는

+0

'JOIN'을 읽어야하는 것처럼 들립니다. http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html – Widor

답변

0

난 당신이 다음과 같이 ....

Select 
     t.ID, 
     t.VideoCamID, 
     i.InputStreamID, 
     is.StreamType as InputStreamType, 
     is.StreamDesc as InputStreamDesc, 
     o.OutputStreamID, 
     os.StreamType as OutputStreamType, 
     os.StreamDesc as OutputStreamDesc, 
     v.VideoCamID 

from 
    Tab_Transcoders t 
    inner join InputStreams i on i.InputStreamID=t.InputStreamId 
    inner join Streams is on is.StreamId=i.StreamId 
    inner join OutputStreams o on o.OutputStreamId=t.OutputStreamId 
    inner join Streams os on os.StreamID=o.StreamId 
    inner join VideoCams v on v.VideoCamId=t.VideoCamID 
+0

나는 내 500000 라인 쿼리를 작성하지,하지만 그것은 당신의 제안 트릭을 한 것 같습니다.고마워요! – user1450661

0

당신의 테이블간에 정의 관계가있는 경우, 다음을 사용하여 가입을 원하는 생각합니다. 예컨대 고객 주문

주문 조인을 사용하여 두 개의 테이블에서 얻는 데이터로 고객 ID를

Select Order.ID,Order.Quantity, Order.CustomerId, Customer.FullName, Customer.Address 
From Orders Order 
Join 
Customer 
On 
Order.CustomerId = Customer.CustomerId 

먼저 시작을 한 후 귀하의 요구 사항에 따라 작동하는 경우, 조인에 다른 필요한 테이블을 추가합니다.

SQl JOINS에 대해 읽어보십시오. 매우 간단합니다.

관련 문제