2013-06-13 5 views
0
Table1 | Table2 
S1  | S3 
S2  | S3 
S3  | S9   
S4  | S2 
     | S5 

이 두 테이블에는 하나의 열이 있습니다. 나는 중복 값과의 교차점을 원합니다. 즉 교차 결과가 (S2,S3,S3) 이길 원합니다.중복 된 공통 값을 얻기위한 SQL 쿼리

SQL 오라클 쿼리를 사용하여이 결과를 얻으려면 어떻게해야합니까?
나는 이것에 상당히 새롭다. 감사!

답변

1
select table2.column2 
from table2 
join table1 on table2.column2 = table1.column1 
order by table2.column2 

또는 대안 적으로, (즉, 실제 단어?) 아마 쉽게 이해하고, 미만 확대됨 :

select table2.column2 
from table2 
where column2 in (select column1 from table1) 
order by table2.column2 

이 두 쿼리 매우 동일하지 않습니다 :

  • table1에 동일한 값이 여러 번있는 경우 첫 번째 행 table2가 여러 번 반환됩니다.
  • s econd는 표 그들에게 여러 번

사용하는 한 당신에게 더 적합하다에 따라 달라을 나열하는 경우에도, 최대 한 번 표 2의 각 행을 반환합니다 (예 : "중복 값이"정확히 무엇을 의미하는지)

+0

I을 이 두 쿼리는 실제 데이터에 따라 다른 결과를 생성 할 수 있음을 지적하고자합니다. 나는 첫 번째 질의가 원하는 결과를 생성 할 것이라고 생각한다. (나는 정확하게 이해하고 있다고 가정한다.) 제 2가 원하는 결과를 만들어 낼지 모른다. – sgeddes

+0

@sgeddes 좋은 점 - 그다지 똑같지는 않습니다. 나는 그 차이점을 문서화했습니다. 원하는 것이 무엇인지, 실제로 중복되는 것은 질문에서 부족한 정보를 제공한다는 것을 아는 것은 어렵습니다. 첫 번째 테이블에 고유 한 값만있는 경우 (내 돈은 두 번째 쿼리에 있음) – Bohemian

+1

두 번째 쿼리를 사용하면 쉽게 이해할 수 있습니다. 감사 ! 설명을 추가하려면 – Margi