2013-12-09 2 views
1

두 테이블 모두에 track_ids와 artist_ids가 있습니다. 내가하고 싶은 것은 모든 track_ids를 결합하여 어떤 artist_ids가 어떤 트랙과 일치하는지 확인하는 것입니다. 필자가 원하는 결과는 두 테이블의 결과를 반환해야하는 artist_id를 검색하면 두 테이블을 모두 조인하고 artist_id를 검색해야한다는 것입니다. artist_id가 발견되면 특정 트랙을 반환해야합니다. 이 결과는 또한 고유해야합니다. 테이블 데이터의 예에 따라서 2 개의 테이블을 결합하고 where 절을 기반으로 한 컬럼을 추출하십시오.

Table1: 
Column names: id [primary key], artist_id, track_id 
Column values: 1, 34, 28 
Column values: 2, 34, 11 
Column values: 3, 34, 33 

Table2: 
Column names: id [primary key], track_id, artist_id, 
Column values: 11, 11, 2 
Column values: 12, 12, 24 
Column values: 13, 13, 2 

로 보면 어떻게 artist_id (34)를 찾고 있어요 쿼리가 두 테이블을 결합하고 artist_id (34)를 검색하고 track_ids 28,11을 반환해야하는 경우 위의 여기

입니다 , 33.

답변

1

당신은 할 수 그냥 UNION 두 테이블을 함께. UNION 연산자는 뚜렷한 결과를 반환합니다.

SELECT Track_ID 
FROM Table1 
WHERE Artist_ID = 34 
UNION 
SELECT Track_ID 
FROM Table2 
WHERE Artist_ID = 34 
0

우리가 제공 한 예에서는 JOIN 두 테이블이 필요하지 않습니다. 당신은 단지 실행해야합니다 (경우, 예를 들어, 당신은 Table1에서 추가 필드가 필요)를 JOIN해야하는 경우,

SELECT * 
    FROM Table2 
WHERE artist_id = 34 

을하지만, 그것은 간단합니다 같은 :

SELECT * 
    FROM Table1 
    JOIN Table2 on Table1.id = Table2.artist_id 
    WHERE Table1.id = 34 
+0

조인의 이유는 두 테이블을 모두 검색하여 예제에서 track_id를 찾으면됩니다. –

+0

'artist2 id '는'Table2'에 존재할 수 있지만'Table1'에는 존재하지 않을 수 있습니까? –

+0

테이블 1 또는 테이블 2에 존재할 수도 있고 둘 다 존재할 수도 있습니다. –

관련 문제