组合表SQL Server

时间:2017-04-24 19:12:51

标签: sql sql-server sql-server-2008

我有2个表格,其中包含一些银行信息,如下所示。

Create table dbo.MainBank
(
     tmp1ID int,
     ID int not null,
     temptableID int not null,
     CountryID int
)

insert into dbo.MainBank values(1, 22, 9999, 56)

Create table dbo.BankBranches
(
     tmp1ID int,
     CountryID int, 
     BankBranchName varchar(200), 
     BranchID int,
     temptableID int not null
)

insert into dbo.BankBranches values(0, 56, 'Near Giant Store', 1000, 9999)
insert into dbo.BankBranches values(0, 56, 'Inside DM Mall', 2000, 9999)
insert into dbo.BankBranches values(0, 56, 'Near Hwy 20', 3000, 9999)
insert into dbo.BankBranches values(0, 56, '24 Salem St', 4000, 9999)

我希望对来自dbo.BankBranches的每个ID匹配重复dbo.MainBank的所有值。

create table dbo.result
(
     tmp1ID int, 
     CountryID int,
     temptableID int, 
     BankBranchName varchar(200), 
     BranchID int
)

INSERT INTO dbo.result values(1, 56, 9999, 'Near Giant Store', 1000)
INSERT INTO dbo.result values(1, 56, 9999, 'Inside DM Mall', 2000)
INSERT INTO dbo.result values(1, 56, 9999, 'Near Hwy 20', 3000)
INSERT INTO dbo.result values(1, 56, 9999, '24 Salem St', 4000)

我该怎么做?

由于

2 个答案:

答案 0 :(得分:0)

假设您指的是BankBranches的所有值以及MainBank中BankBranches.BranchID = MainBank.temptableID:

的值
select BB.*
      ,MB.*
From BankBranches BB
Left Join MainBank MB
on BB.BranchID = MB.temptableID

答案 1 :(得分:0)

根据您的示例数据和您想要的结果,我猜您要加入的IDtemptableID

您可以使用内部联接,因为我们只想返回两个表之间的共同记录:

select  mb.tmp1ID,
        mb.CountryID,
        mb.temptableID,
        bb.BankBranchName,
        bb.BranchID
from dbo.MainBank mb
inner join dbo.BankBranches bb
    on mb.temptableID = bb.temptableID