一个表create table t(name varchar,parentname varchar);
数据如下
小明 中明
中明 大明
小亮 中亮
中亮 大亮
小强 中强
我用如下语句 select a.name,b.name,c.name from t a,t b,t b where a.name=b.parentname b.name=c.parentname
会输出 
大明 中明 小明
大亮 中亮 小亮但由于中强没有父亲,所以查询不到信息,但是我又想知道他的存在,希望有一个sql语句的出如下结果大明 中明 小明
大亮 中亮 小亮
null 中强 小强希望大家帮忙

解决方案 »

  1.   

    你先用你上面那个sql查出有父亲的人员,然后在用一句sql查出没有父亲的人员,再然后用UNION ALL将两个sql连接起来,就会得到你想要的结果!
      

  2.   

    用右外连接把:select a.name,b.name,c.name 
    from t a right join t b on a.name=b.parentname 
             right join t c on b.name=c.parentname这样写就算没有父亲,null也会显示出来
      

  3.   

    怎样查出没有父亲的人员,能给个sql吗?
    另外楼主的SQL语句应该不对吧,应该是:select a.parentname,a.name,b.name from t a,t b where a.name=b.parentname;