首页 > 解决方案 > SQL Server:如何合并具有不同行数的 3 个表

问题描述

我有 3 个包含不同数据的表,我需要返回一个包含所有 3 个表的表:

Customer
Contacts
Addresses

我只想在一张表和一条记录中获取数据,其中包含所有详细信息,例如 CustomerNumber、Name、City、officeNumber....,例如 Union

SELECT CU.[Name] 
FROM Customers CU  
WHERE CustomerNumber = @CustomerId 
  AND IsDeleted = 0

SELECT AD.City, AD.Street 
FROM [Addresses] AD
WHERE CustomerId = @CustomerId 
  AND IsDeleted = 0

SELECT CO.FullName, CO.OfficeNumber, CO.Email
FROM [Contacts] CO 
WHERE CustomerId = @CustomerId 
  AND IsDeleted = 0

结果:

在此处输入图像描述

标签: sql-server

解决方案


行数与列的联合数无关。

你对工会有什么期望?

我想您希望您想要拥有 Id= @CustomerId 的客户的所有信息(姓名地址、联系方式)

如果我是对的,您应该使用 CustomerId 作为连接子句在 3 个表之间进行 2 次连接

编辑: https ://www.db-fiddle.com/f/uGhtAZAVk64KzgThGekKk6/11


推荐阅读