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

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

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

4

1 回答 1

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 多次列出它们

使用哪个取决于哪个更适合您(即“重复值”的确切含义)

于 2013-06-13T04:31:54.290 回答