2013-05-03 2 views
1

그림과 조각의 제목과 해당 artistID를 가져 오는 SELECT 쿼리를 만들려고합니다. 여기 SQL Join : 같은 종류의 테이블

스키마입니다 :

Paintings(paintingID, title, painterID) p

Sculptures(scluptureID, title, sculptorID) s

내가이 JOIN을 사용할 필요가 있다고 생각하지만, 나는 이상한 결과를 얻기없이 가입 모르겠어요. 내가 ON p.painterID=s.sculptorID에 가입하면 화가이자 조각가 인 아티스트에 대해서만 결과를 얻습니다. 모든 조각과 회화를 '예술'로 취급하고 화가와 조각을 '예술가'로 취급하여 각 행에 모든 값이 포함되도록하고 다른 표에 존재하지 않는 열을 NULL s 개로 채우고 싶습니다. (스키마는 실제 생활에서 조금 더 큽니다). 그 일에 대해 어떻게 생각하나요/내가 무엇을 놓치고 있습니까? 이 Sculptures 테이블에서 Paintings 테이블에서 모든 그림, 모든 조각을 선택합니다

SELECT title, painterID artistID 
FROM Paintings 
UNION ALL 
SELECT title, sculptorID artistID 
FROM Sculptures 

: 당신은 가입하지 않아도

+1

'조각'에 대해 '조각'을 수정해야합니다. 또한 이것은 [다 대 다 관계]입니다 (http://sqlrelationship.com/many-to-many-relationship/). 그것에 대해 읽어야합니다. 'Many to many relationships'이기 때문에 [Union] (http://msdn.microsoft.com/en-CA/library/ms180026.aspx) – phadaphunk

답변

4

, 당신은 UNION 쿼리를 사용해야합니다. painterIDsculptorIDartistID의 별칭을 갖습니다.

+0

'{...}'을 사용해야합니다. – phadaphunk