Sql-Server
如何在不使用自連接的情況下從表類別中顯示 c 和 x 的類別名稱?
我在 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
嗎?SELECT d1.categoryname AS categoryc ,d2.categoryname AS categoryx FROM #category c CROSS APPLY #categorydetails AS d1 CROSS APPLY #categorydetails AS d2 WHERE d1.categoryid=c.categoryc and d2.categoryid=c.categoryx;
順便說一句,在您的查詢中沒有自聯接。自我加入是當你做的時候
TableA AS Ta1 Join TableA AS Ta2 on Ta1.x = Ta1.y
。在您的查詢中,您只是在兩個不同欄位的類別和詳細資訊之間進行兩次連接。