sql如何按条件填充数据?

img


如图,我想根据第一、三列的对应关系和第二列的ID得到第四列的数据,请问如何实现?


select a.id1,a.id2,a.名称1,b.名称1 名称2 from 表 a
LEFT join 表 b on a.id2=b.id1

试试,没测

从你的数据来看,ID1和名称1就是唯一的,那不是很轻松可以得到吗?

SELECT A.*,B.名称1 as 名称2 FROM Test1 A LEFT JOIN Test1 B ON A.ID2=B.ID1


WITH T1 AS  (SELECT 1 AS ID1 , 1 ID2 , 'A' NAME UNION ALL 
     SELECT 2 AS ID1 , 1 ID2 ,     'B' NAME UNION ALL 
         SELECT 3 AS ID1 , 1 ID2 , 'C' NAME UNION ALL 
         SELECT 4 AS ID1 , 1 ID2 , 'D' NAME UNION ALL 
         SELECT 5 AS ID1 , 1 ID2 , 'E' NAME UNION ALL 
         SELECT 6 AS ID1 , 2 ID2 , 'F' NAME UNION ALL 
         SELECT 7 AS ID1 , 2 ID2 , 'G' NAME UNION ALL 
         SELECT 8 AS ID1 , 2 ID2 , 'H' NAME UNION ALL 
         SELECT 9 AS ID1 , 2 ID2 , 'I' NAME UNION ALL 
         SELECT 10 AS ID1 , 2 ID2 ,'J' NAME UNION ALL 
         SELECT 11 AS ID1 , 3 ID2 ,'K' NAME ) 
select B.*,a.name 
FROM T1 A 
LEFT JOIN T1 B 
ON A.ID1 = B.ID2 
-- where b.id1 is not null