我遇到了2个用于查询我的数据库类的问题。具有条件和递归的SQL UNION
我有一个表的“客户”与此列:
name | id | date | points | REFERRAL
---------------------------------------------
daniel | 123456 | 01-01-01 | 50 | 321321
jack | 321321 | 01-01-01 | 30 | 555555
注意,丹尼尔是由杰克
1)随着一个人的编号所表现出从他们所有的客户转介和请示第三参考电平
首先我觉得这样的事情,只是为了2的参考电平:
SELECT C1.name
FROM Clients C1, Clients C2
WHERE C1.REFERRAL= 21000301
AND C1.id= C2.REFERRAL
这显然不适用于AND。 后来我尝试UNION:
SELECT C1.id, C1.REFERRAL
FROM Clients C1
WHERE C1.REFERRAL= 21000301
UNION
SELECT C2.id, C2.REFERRAL
FROM Clients C2
WHERE C2.REFERRAL= C1.ID
但在第二不能访问C1选择
所以,我的问题是,有一种方法,使与UNION条件。 如果不是,我该如何解决这个问题?
2)以更直接和间接的引荐方式向客户展示引荐的名称和总数。
在这一个我完全失去了:D,可能是递归?在SQL中是否有类似的东西?
在此先感谢,并对不起我的英文不好。
请参阅下一个答案(代码看起来可怕在这里),我希望你能帮助我。 – danielfrg 2010-08-23 03:58:49