使用一个表中的where子句从两个表中运行sql查询

时间:2010-07-16 19:26:57

标签: sql sql-server

我想根据另一个表中的记录从一个表中获取记录。他们都有SSN字段,我想通过SSN链接它们。 这是我想要得到的一个粗略的例子:

SELECT SUM(Table1.Payments) 
  FROM Table1 
 WHERE Table1.SSN = Table2.SSN 
   AND Table2.City = 'New York'

我希望在这种情况下获得变量付款的总和,城市。

1 个答案:

答案 0 :(得分:6)

SELECT SUM(t1.Payments) 
from Table1 t1 
JOIN Table2 t2 on t1.SSN = t2.SSN and t2.City = 'New York'

您使用内部联接,仅获取Table2付款在表2中具有相同SSN的匹配记录。

如果表2中有多个SSN记录,那么您可能想要使用EXISTS查询。

Select SUM(t1.Payments)
from Table1 t1 
where EXISTS( SELECT 1 FROM Table2 where SSN = t1.SSN and City = 'New York' )