SQL查询以获取重复的公共值

时间:2013-06-13 04:24:48

标签: sql oracle11g

Table1   |  Table2
S1       |  S3
S2       |  S3   
S3       |  S9        
S4       |  S2
         |  S5

我有这两个表有一列。我想让它们与重复值相交。即我希望交叉结果为(S2,S3,S3)

如何使用SQL oracle查询获得此结果? 我对此很新。谢谢!

1 个答案:

答案 0 :(得分: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
  • 第二个将返回table2中的每一行一次,即使table1多次列出它们

使用的一个取决于哪个更适合您(即“重复值”意味着什么)