select id,name,pname=(select name from where id=a.pid) from tb a
用左连好像也不行,那个大侠在自己数据库上试一下,我在外面,没测试环境,给我一个确切的SQL,麻烦了
declare @t table(id int,name varchar(5),pid int) insert into @t select 1,'aa',null union all select 2,'bb',null union all select 3,'aa1',1select id,name,pname=(select name from @t where id=a.pid) from @t a(所影响的行数为 3 行)id name pname ----------- ----- ----- 1 aa NULL 2 bb NULL 3 aa1 aa(所影响的行数为 3 行)
左联接这么用: select a.id,a.name,pname=b.name from @t a left join @t b on a.pid=b.id
select a.ID,a.NAME,b.NAME as PNAME from table_A a left join table_A b on a.PID=b.ID
from tb a
insert into @t select 1,'aa',null
union all select 2,'bb',null
union all select 3,'aa1',1select id,name,pname=(select name from @t where id=a.pid)
from @t a(所影响的行数为 3 行)id name pname
----------- ----- -----
1 aa NULL
2 bb NULL
3 aa1 aa(所影响的行数为 3 行)
select a.id,a.name,pname=b.name
from @t a left join @t b on a.pid=b.id
select a.ID,a.NAME,b.NAME as PNAME
from table_A a left join table_A b on a.PID=b.ID
刚才没有仔细看你写的关联字段。sorry.这回更正,又被楼上抢了先。