问个比较苦闷的SQL语句,有测试数据,有截图,
问个比较郁闷的SQL语句,有测试数据,有截图,,,???
已知上面数据,我要得到下面的结果

------解决思路----------------------
直接表连接即可
------解决思路----------------------

一楼的方法前面加一个T.* 。。。嘎嘎
------解决思路----------------------
CREATE TABLE [dbo].[Table_test](
[id] [int] IDENTITY(1,1) NOT NULL,
[CNAME] [varchar](50) NULL,
[国家id] [int] NULL,
[省份id] [int] NULL,
[城市id] [int] NULL,
[区域id] [int] NULL,
[街道id] [int] NULL,
CONSTRAINT [PK_Table_test] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
SET IDENTITY_INSERT [dbo].[Table_test] ON
INSERT [dbo].[Table_test] ([id], [CNAME], [国家id], [省份id], [城市id], [区域id], [街道id]) VALUES (1, N'中国', 1, 0, 0, 0, 0)
INSERT [dbo].[Table_test] ([id], [CNAME], [国家id], [省份id], [城市id], [区域id], [街道id]) VALUES (2, N'美国', 2, 0, 0, 0, 0)
INSERT [dbo].[Table_test] ([id], [CNAME], [国家id], [省份id], [城市id], [区域id], [街道id]) VALUES (3, N'福建', 1, 3, 0, 0, 0)
INSERT [dbo].[Table_test] ([id], [CNAME], [国家id], [省份id], [城市id], [区域id], [街道id]) VALUES (4, N'福州', 1, 3, 4, 0, 0)
INSERT [dbo].[Table_test] ([id], [CNAME], [国家id], [省份id], [城市id], [区域id], [街道id]) VALUES (5, N'鼓楼区', 1, 3, 4, 5, 0)
INSERT [dbo].[Table_test] ([id], [CNAME], [国家id], [省份id], [城市id], [区域id], [街道id]) VALUES (6, N'红星路', 1, 3, 4, 5, 6)
INSERT [dbo].[Table_test] ([id], [CNAME], [国家id], [省份id], [城市id], [区域id], [街道id]) VALUES (7, N'夏威夷', 2, 7, 0, 0, 0)
SET IDENTITY_INSERT [dbo].[Table_test] OFF
已知上面数据,我要得到下面的结果
------解决思路----------------------
直接表连接即可
SELECT T1.CNAME[国家],T2.CNAME[省份],T3.CNAME[城市],T4.CNAME[区域],T5.CNAME[街道] FROM [Table_test] T
LEFT JOIN [Table_test] T1 ON T.[国家id]=T1.id
LEFT JOIN [Table_test] T2 ON T.[省份id]=T2.id
LEFT JOIN [Table_test] T3 ON T.[城市id]=T3.id
LEFT JOIN [Table_test] T4 ON T.[区域id]=T4.id
LEFT JOIN [Table_test] T5 ON T.[街道id]=T5.id
------解决思路----------------------
SELECT T.*,T1.CNAME[国家],T2.CNAME[省份],T3.CNAME[城市],T4.CNAME[区域],T5.CNAME[街道]
FROM [Table_test] T
LEFT JOIN [Table_test] T1 ON T.[国家id]=T1.id
LEFT JOIN [Table_test] T2 ON T.[省份id]=T2.id
LEFT JOIN [Table_test] T3 ON T.[城市id]=T3.id
LEFT JOIN [Table_test] T4 ON T.[区域id]=T4.id
LEFT JOIN [Table_test] T5 ON T.[街道id]=T5.id
一楼的方法前面加一个T.* 。。。嘎嘎
------解决思路----------------------
SELECT *
FROM [Table_test] a
OUTER APPLY (SELECT CNAME[国家] FROM [Table_test] WHERE id=a.[国家id]) b
OUTER APPLY (SELECT CNAME[省份] FROM [Table_test] WHERE id=a.[省份id]) c
OUTER APPLY (SELECT CNAME[城市] FROM [Table_test] WHERE id=a.[城市id]) d
OUTER APPLY (SELECT CNAME[区域] FROM [Table_test] WHERE id=a.[区域id]) e
OUTER APPLY (SELECT CNAME[街道] FROM [Table_test] WHERE id=a.[街道id]) f