2009-09-02 5 views
0

두 SELECT 문을 병합해야합니다.두 SQL SELECT 문 병합

내 데이터베이스에는 테이블 A가 두 개의 필드로 구성되는 두 개의 테이블이 있습니다. 유형 및 카운터. 표 B는 두 개의 필드로 구성됩니다. 출처와 목적지. 이다

 
Table A has three items; 
        { 1, 5000 }, { 2, 10000 } and { 3, 15000 }. ({Type, Counter}) 
Table B has two items; 
        { 5000, 10000 } and { 10000, 150000 }. ({Source, Destination}) 

은, 테이블 B의 값은 테이블 A.

내 쿼리 내가 사용할 수있는 데이터에서 데이터로 구성 테이블 A의 유형 (1, 2, 3).

데이터베이스에 대한 쿼리의 최종 결과는 하나의 항목이어야합니다. {5000, 10000, 15000}, 여기서 각 열은 {Source, Middle, Destination}을 읽어야합니다. 그러나 이러한 형식으로 나타날 수있는 쿼리를 만들 수 없었습니다.

결과가 두 항목으로 나타나는 INNER JOIN을 사용하여 데이터를 가져올 수 있습니다. {5000, 10000} 및 {10000, 15000} (테이블뿐만 아니라, 다른 항목으로 구성 할 경우, 인 테이블 B의 단순히 내용.)

이 (분명 내가 위에 표시된 것보다 두 테이블에서 훨씬 더 많은 항목이있다.) 그래서

, 어떻게 내 결과를 {5000, 10000, 15000} (적절한 열 이름 포함)로 표시 할 수 있도록 SQL 쿼리를 작성할 수 있습니까?

+0

당신이 시도 선택 문을 게시 할 수 있어야한다? – kemiller2002

+0

중간에만 있습니까? 아니면 "경로"가 5000 -> 10000 -> 15000 -> 20000 -> 25000이 될 수 있습니까? 어떤 경우 열이 어떻게 생겼을까요? – butterchicken

+0

중간이 하나 있습니다. 다음은 내 (잘못된 SELECT)입니다. TableB.DestinationType ON TableA의 TD2의 가입 TableB.SourceType = ON INNER TB1.Type TableA의 TD1의 가입 TableB의 INNER * FROM 을 선택 = TD2.Type INNER TableA의 TD4의 가입 TableB.DestinationType = ON INNER TD3.Type TableA의 TD3의 가입 ON TableB.DestinationType = TD4.Type 어디서 TD1.Counter = 5000 AND TD2.Counter = 10000 또는 TD1.Counter = 10000 AND TD3.counter = 15000 –

답변

2

질문에서 테이블 A를 사용하거나 필요가 없습니다. 단순히 Source = Destination에서 Table B를 자체에 가입시키는 것입니다.

귀하의 질의는

SELECT a.Source, a.Destination, b.Destination 
FROM [Table B] as a INNER JOIN [Table B] as b 
ON a.Destination = b.Source 
+0

그걸 한 것처럼 보였습니다. 감사. 나는 내가 눈먼 사람을 응시하고 있었다고 생각한다. –

+0

나는 정답을 게시했는데, 왜 투표를하지 않았습니까? 나는 당신의 것을보기 전에 그것을 게시했고, 나는 더 나은 것을 좋아합니다. –