2017-04-17 8 views
0

과 같을 수도 있습니다. 사실 ORACLE 플랫폼에서 SQL을 연구하고 몇 가지 연습 문제가 있습니다. COUNTRYS도 나라 XY이 소속 모든 조직에 회원 : 그들의Oracle SQL SELECT는 복수 AND

하나는

이 훈련은입니다 ... 내가 그것을 잘 완수하지는 나를 위해 열심히이다 의?

여러 테이블이 있지만이 작업에는 하나만 필요하다고 생각합니다. 내가 방법을 찾을 수 있습니다

Country /Abbreviation 
    USA / G-5 
    USA / G-7 
    USA / G-9 
    Canada/ G-7 
    Canada/ G-9 
    Norway/ G-20 

등등 ....

:

TABLENAME : 같은 isMember (약어 (FK), 국가 (FK))

그래서 테이블이 보인다 목록에있는 모든 국가는 예를 들어 미국이 회원 인 모든 조직의 구성원이기도합니다.

대단히 감사합니다!

+0

'모든 국가의 회원 국가이며 '. 예를 들어, XY 국가가 미국이면, 다른 나라는 출력하지 않아야합니다. 이 올바른지 ? –

+0

Hello Oto, 맞습니다. 제 예제에서는 일치하는 국가가 없습니다. 어쩌면 가장 좋은 예는 아니지만 분명하다고 생각합니다. – eneR

답변

0

이것은 까다로운 질문입니다. 한 가지 방법은 미국이 속한 국가 및 조직과 함께 모든 행을 구성한 다음 각 국가의 개수를 계산하여 일치하는지 확인하는 것입니다.

select c.country 
from (select distinct country from isMember) c cross join 
    (select abbreviation from isMember where country = 'USA') a left join 
    isMember im 
    on im.country = c.country and im.abbreviation = a.abbreviation 
group by c.country 
having count(*) = count(im.country); -- do all organizations match? 
+0

안녕하세요 고든, 내가 게시 한 SQL 코드를 확인했습니다. 예상대로 작동하지 않는다고 생각합니다. 나는 항상 내가 비교할 나라를 찾는다. 귀하의 코드에서 미국 예를 들어. – eneR

+0

@eneR. . . 샘플 데이터에서 미국이 속한 모든 조직의 회원국은 없습니다. 따라서 미국을 얻는 것만으로는 놀라운 일이 아닙니다. –