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

Laz*_*ale 0 sql sql-server

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

SELECT SUM(Table1.Payments) 
  FROM Table1 
 WHERE Table1.SSN = Table2.SSN 
   AND Table2.City = 'New York'
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我希望通过变量获得付款总额.

Fos*_*sco 6

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

您使用内部联接,仅获取Table2 Payments在Table2中具有相同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' )
Run Code Online (Sandbox Code Playgroud)