postgreSQL의 하위 쿼리에서 코드가 작동하지 않는 이유를 알 수 없습니다 (아래 문제).PostgreSQL 하위 쿼리 문제 : 다른 아티스트의 노래 제목과 일치하는 아티스트의 노래 제목을 지정하십시오.
문제 : 제목이 다른 아티스트의 노래 제목이기도 한 Leonard Cohen의 노래 제목을 제공합니다.
코드 :
select track.title
from (select title, name, artistid
from artist inner join
track
USING(artistid)
where name = 'Leonard Cohen'
) AS loli inner join
track on track.title = loli.title
편집 : 그 힌트를 읽은 후 꽤 바보 같은 느낌은, 분명히 나는 더 큰 목록에서 같은 노래와 함께 작은 목록에서 "일치"노래를 해요. 나는 그 (것)들을 안으로 매치하기 위하여 의미했다, 그들의 동일한 이름에 그 (것)들을 결합하지 말라.
내 생각 : 기본적으로 아티스트 (예술가와 이름 포함)와 트랙 (trackid, 아티스트, 제목 등 포함)의 결합 된 하위 쿼리를 작성하여 제공합니다. 별칭 'loli'. 31 곡이수록되어 있습니다. 하위 쿼리의 제목이 트랙의 제목과 일치해야하기 때문에 하위 테이블은 트랙 테이블의 내부 조인으로 간주됩니다. 그러나 일치하는 트랙을 표시하는 대신 33 개의 트랙을 표시합니다.
기본적으로 2 트랙 만 표시해야했지만 대신 31 트랙 및 2 배가 표시되었습니다. 레너드 코헨 다른 예술가들 1 및 2에 존재
힌트 : 트랙 자체가 일치합니다. –