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