首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MySql中选择以下内容?

如何在MySql中选择以下内容?
EN

Stack Overflow用户
提问于 2012-05-01 13:13:50
回答 2查看 92关注 0票数 0

我有一个用户系统,其中用户帐户可以拥有从属帐户。

为了表达这种关系,我有以下mysql表:

代码语言:javascript
复制
TABLE ACCOUNTS
ID
name

TABLE OWNEDACCOUNTS
accountID -> ACCOUNTS(ID)
ownerID -> ACCOUNTS(ID)

尽管从这些表中看不出来,但这种关系只能深入两个层次:

Account ->子账号->子账号

目前,我可以选择属于顶级帐户的所有子帐户,具体如下:

代码语言:javascript
复制
SELECT  a.ID
FROM    accounts AS a
JOIN    ownedAccounts AS o
ON      o.accountID = a.ID
        AND o.ownerID = ?

但是,我真正想要的是选择所有子帐户和属于单个顶级帐户的所有子子帐户。我该怎么做呢?

(提前)感谢你的帮助

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-01 13:22:22

代码语言:javascript
复制
Select ...
From accounts AS a
    Join ownedAccounts AS o
        On o.accountID = a.ID
    Join accounts AS owner1
        On owner1.ID = o.ownerID
    Left Join ownedAccounts AS o2
        On o2.accountID = owner1.ID
    Left Join accounts As owner2
        On owner2.ID = o2.ownerID
Where o.ownerID = ?
票数 0
EN

Stack Overflow用户

发布于 2012-05-01 20:31:16

这应该列出你拥有的每个帐户,以及它的sub和sub sub的计数。希望这是一个很好的起点。

代码语言:javascript
复制
SELECT  a.ID, count(sub.accountID), count(subsub.accountID)
FROM    accounts AS a
LEFT JOIN    ownedAccounts AS sub ON      sub.ownerID = a.ID
LEFT JOIN    ownedAccounts AS subsub ON      subsub.ownerID = sub.accountID
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10393846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档