日期:2014-05-19  浏览次数:20806 次

数据库查询语句问题
一个表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 中强 小强

希望大家帮忙

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

------解决方案--------------------
用右外连接把:
SQL code

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

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

------解决方案--------------------
自身外连接