根据FName
和LName
,我需要加入2个表格。
这就是表格目前的样子
TableA
表B
我想返回1个数据集,该数据集使用FName
,LName
和City
作为复合唯一键向我显示用户的所有数据。
SELECT TOP (10)
dbo.TableA.Fname, dbo.TableA.Lname, dbo.TableA.Email, dbo.TableA.Party
, dbo.TableB.DONR_MAIL_ORD, dbo.TableB.DONR_CHARITABLE,
FROM dbo.TableA
INNER JOIN dbo.TableB
ON dbo.TableA.Fname = dbo.TableB.FN AND dbo.TableA.Lname = dbo.TableB.LN
WHERE (dbo.TableA.Party = 'r')
AND (dbo.TableB.DONR_MAIL_ORD = 'y')
AND (dbo.TableB.DONR_CHARITABLE = 'y')
AND (dbo.TableB.DONR_POL = 'y')
答案 0 :(得分:4)
假设您只想从两个表中获得唯一的Fname,Lname和City列表。如果您只是加入表,那么最终只会在两个表中匹配数据。如果是这种情况,请使用ali786的答案。如果您尝试从两个表中查找唯一列表,请使用以下答案:
SELECT DISTINCT Fname, Lname, City FROM TableA
UNION
SELECT DISTINCT Fname, Lname, City FROM TableB
编辑:
根据你的回答,我猜你想要一些非常接近al798答案的东西,只需要一个WHERE
条款。
SELECT *
FROM TableA A1
JOIN TableB B2
ON A1.Fname = B2.Fname
AND A1.Lname = B2.Lname
AND A1.City = B2.City
WHERE A1.Fname = "First name of person"
AND A1.Lname = "Last name of person"
AND A1.City = "the city";
如果这不是您想要的,请提供样本数据集并提供您期望的结果,因为您不太清楚您在寻找什么。
答案 1 :(得分:3)
尝试这样做,
SELECT *
FROM TableA A1 INNER JOIN TableB B2 ON
A1.Fname = B2.Fname AND
A1.Lname = B2.Lname AND
A1.City = B2.City;
您可以参考SO的这些问题 Join table with composite key twice &安培;这Join tables on columns of composite foreign / primary key in a query