事情是这样的,我使用WPF写数据表时 遇到了这个问题 我觉得想必将两次查询塞入数据表,不如直接一条SQL方便
表是这样的
ID | TypeName | F_ID |
---|---|---|
1 | 电脑 | 0 |
2 | CPU | 1 |
3 | 显卡 | 1 |
4 | 主板 | 1 |
5 | 蔬菜 | |
6 | 白菜 | 5 |
7 | 黑菜 | 5 |
如何使用一条sql 将查出的数据
ID | TypeName | F_ID | F_Name |
---|---|---|---|
1 | 电脑 | 0 | |
2 | CPU | 1 | 电脑 |
3 | 显卡 | 1 | 电脑 |
假设表名为tt
SELECT
t1.ID,t1.TypeName,t1.F_ID,t2.TypeName as F_Name
from tt t1
left join tt t2
on t1.F_ID = t2.ID
where 1=1
and t1.ID <= 3
没有测试,把表名替换了执行一下看有无错误
select a.*,b.TypeName as F_NAME from Test1 a,Test1 b where a.F_ID=b.ID
union select *,'' F_NAME from Test1 where ISNULL(F_ID,'')='' OR F_ID=0