2014-01-23 108 views
0

我有兩個電話號碼錶,我想運行查詢來檢查兩個表中是否有重複的電話號碼。該表被稱爲1類和我CLASS2想出了以下查詢:SQL重複電話查詢

Select * 
from Class1 
where Telephone in (select 
       Telephone 
       from Class2 
       group by Telephone 
       having count(*) > 1) 

它不工作,任何人可以幫我嗎?

+0

什麼版本的SQL Server您使用的是? – NickyvV

+0

SQL Server 2008 R2 –

+0

和SQL Server 2012 –

回答

2

你混合兩件事情:

Select * from Class1 where Telephone in (select Telephone from Class2); 

爲您提供了存在兩個表中的所有數字。

Select Telephone from Class1 group by Telephone having count(*) > 1; 

爲您提供Class1中的所有重複數字。

您可以結合這些:

Select 'Class1' as whattable, Telephone from Class1 group by Telephone having count(*) > 1 
union all 
Select 'Class2' as whattable, Telephone from Class2 group by Telephone having count(*) > 1 
union all 
Select 'both' as whattable, Telephone from Class1 where Telephone in (select Telephone from Class2); 
+0

如果在Class1中有另一列,那麼在你的第二個代碼塊中的select *'會出現故障,那麼電話應該是'Select Telephone' – NickyvV

+0

哦,是的,當然。感謝您指出了這一點。我糾正了我的答案。 –