【发布时间】:2013-10-11 17:55:55
【问题描述】:
你好,我有一张类似这张的桌子:
id sponsor name
------------------------
1 0 Sasha
2 1 John
3 1 Walter
4 3 Ashley
5 1 Mark
6 4 Alexa
7 3 Robert
8 3 Frank
9 4 Marika
10 5 Philip
11 9 Elizabeth
当我选择一个 ID(称为 MYCHOICE)时,我想知道所有拥有像 MYCHOICE 这样的赞助商的人的姓名......很简单:
从表名中选择 *,其中赞助商=MYCHOICE
但是...这是问题所在...我会知道有多少人在这个结果的下线...所以...有多少记录与赞助商一样每个 id。
如果我选择 id 1 结果应该是
id name downline
----------------------
2 John 0 (noone with sponsor=2)
3 Walter 3 (3 with sponsor=3: ashley, robert, frank)
5 Mark 1 (1 with sponsor=5: philip)
如果我选择 id 4 结果应该是
id name downline
----------------------
6 Alexa 0
9 Marika 1 (1 with sponsor=9: Elizabeth)
如果 mychoice 是 1,我会尝试这个“糟糕的解决方案”
从赞助商所在的表名中选择赞助商,计数(*)作为下线 (从表名中选择 ID,其中赞助商 = 1)按赞助商顺序分组 下线描述
这个查询的结果是
sponsor downline
---------------------
3 3
5 1
有两个问题: - 名字不是权利,不是我想要的 - 示例中的计数 0 "2|John|0" 不出现
感谢您的建议和帮助,英语很抱歉, N.
【问题讨论】:
-
你应该使用左外连接来做到这一点