2013-09-27 38 views
2

我如何从众多的一对多关系中选择所有的东西,在许多一对多的关系中关闭几层?我不知道如何嵌套所有这些左连接。MYSQL通过一对多关系的多层查询

There are many Institutions 
Each Institution has many Departments 
Each Department has many Forums 
Each Forum has many Users 
Each User has many Posts 
Each Post has many Comments 

找到一个机构的所有评论。

我google了一下,但我不知道这是什么名字 - 链嵌套一对多的关系查询?我发现的最接近是SQL left join vs multiple tables on FROM line?

回答

3

不知道您的架构,使一些假设:

SELECT c.* 
FROM 
    Institution i 
    INNER JOIN Department d ON d.InstitutionID = i.InstitutionID 
    INNER JOIN Forums f ON f.DepartmentID = d.DepartmentID 
    INNER JOIN `User` u ON u.ForumID = f.ForumID 
    INNER JOIN Post p ON p.UserID = u.UserID 
    INNER JOIN Comment c ON c.PostID = p.PostID 
WHERE 
    i.InstitutionID = 42