我下面有两个表格。
这是该查询的输出结果:
我希望你能够输出以下内容。
CREATE TABLE Name
(
Id INT IDENTITY(1,1) PRIMARY KEY,
Name VARCHAR(256)
)
CREATE TABLE BranchAddress
(
Id INT IDENTITY(1,1) PRIMARY KEY,
UserId INT NOT NULL,
ParentId INT NOT NULL,
IsNetwork BIT,
Address VARCHAR(256)
)
数据:
INSERT INTO dbo.Name ( Name )
VALUES ('George'), ('Greg')
INSERT INTO BranchAddress (UserId, ParentId, IsNetwork, Address)
VALUES (1, 0, 1, 'Kings Street'), (1, 1, 0, 'GS Road'),
(1, 0, 0, 'Nariman Point'), (1, 1, 1, 'St. College Street'),
(1, 2, 1, 'PG National Road'), (1, 1, 0, 'LOS India')
使用连接,我已经获取了两个表格中所需的信息,但在一个新的情况下,我需要提取Address
,例如如果IsNetwork = 0
,则地址应该是其父级的。
以下是连接查询的查询:
SELECT
t.Id, t.Name, t2.ParentId, t2.IsNetwork, t2.Address
FROM
dbo.Name t
INNER JOIN
BranchAddress t2 ON t.Id = t2.UserId
这是该查询的输出结果:
Id Name ParentId IsNetwork Address
----------- ------- ----------- --------- -------------------------
1 George 0 1 Kings Street
1 George 1 0 GS Road
1 George 0 0 Nariman Point
1 George 1 1 St.College Street
1 George 2 1 PG National Road
1 George 1 0 LOS India
我希望你能够输出以下内容。
Id Name ParentId IsNetwork Address
----------- ------- ----------- --------- -------------------------
1 George 0 1 Kings Street
1 George 1 0 Kings Street
1 George 0 0 Kings Street
1 George 1 1 St.College Street
1 George 2 1 PG National Road
1 George 1 0 Kings Street