select a.sort名称, isnull(b.sort,'无') 所属类别 from yourtable a left join yourtable b on a.parentid = b.id
select [id], sort, isnull((select sort from 表名 where b.parentid = 表名.id),0) from 表名 b
select id,sort,case when parentid=0 then '无' else parentid end parentid from 表
select sort 名称,case when parentid=0 then '无' else parentid end 所属类别 from 表
select A.sort 名称, isnull(B.sort, '无') 所属类别 from yourtable as A left join yourtable as B on A.parentid = B.id
select a.sort 名称,'无' 所属类别 from table where parentid=0 union select a.sort 名称,b.sort 所属类别 from table a inner join table b on a.parentid=b.id where a.parentid<>0
谢谢各位。上述问题已经在浪人的提示下得到解决 现在尚有一个问题不清楚 join on 前面为什么要加left 我查了sql联机帮助。没有查到,请指教一二
1 .INNER JOIN 此内联接称为相等联接。它返回两个表中的所有列,但只返回在联接列中具有相等值的行。2.LEFT OUTER JOIN 或 LEFT JOIN 但只返回在联接列中具有左边值的行。 3\RIGHT OUTER JOIN 或 RIGHT JOIN 但只返回在联接列中具有由边值的行。4\FULL OUTER JOIN 或 FULL JOIN 包括不匹配的行保留不匹配信息
left join yourtable as B on A.parentid = B.id
union
select a.sort 名称,b.sort 所属类别 from table a inner join table b on a.parentid=b.id where a.parentid<>0
现在尚有一个问题不清楚
join on 前面为什么要加left 我查了sql联机帮助。没有查到,请指教一二
但只返回在联接列中具有左边值的行。
3\RIGHT OUTER JOIN 或 RIGHT JOIN
但只返回在联接列中具有由边值的行。4\FULL OUTER JOIN 或 FULL JOIN
包括不匹配的行保留不匹配信息