我在 sql server 2014 中工作,我需要在不使用自连接的情况下获取类别 c 和 x。
但是,我不知道该怎么做。
我的数据样本
create table #category
(
categoryc int,
categoryx int
)
insert into #category(categoryc,categoryx)
values
(19,20),
(50,75),
(80,70)
create table #categorydetails
(
categoryid int,
categoryname nvarchar(300)
)
insert into #categorydetails(categoryid,categoryname)
values
(19,'bmw'),
(20,'mercedees'),
(50,'feat'),
(75,'toyota'),
(80,'mazda'),
(70,'suzoky')
select d1.categoryname as categoryc, d2.categoryname as categoryx
from #category c
left join #categorydetails d1 on d1.categoryid=c.categoryc
left join #categorydetails d2 on d2.categoryid=c.categoryx
预期结果
可以使用
CROSS APPLY
吗?顺便说一句,在您的查询中没有自联接。自我加入是当你做的时候
TableA AS Ta1 Join TableA AS Ta2 on Ta1.x = Ta1.y
。在您的查询中,您只是在两个不同字段的类别和详细信息之间进行两次连接。