我相信这是SQL的一个相对基本的功能,但不幸的是,我没有考虑到它是如何完成的,或者它将被称为什么。
基本上,在我目前的数据库中,我们有区域,它们是区域的一部分,它们是区域的一部分,构成一个区域。
沿着这条链,每个父母只有下一个父母的ID,但是,我想生成一个包含所有区域的表格,其中每个区域都有区域,区域和区域的ID列。 #39;的一部分。那我该怎么写这个查询呢?
答案 0 :(得分:0)
Oracle提供分层查询,您可以在其中说出类似
的内容 SELECT parent, child, LEVEL
FROM table
START WITH parent IS NULL
CONNECT BY PRIOR child = parent
START WITH
条件标识层次结构的根,CONNECT BY PRIOR
子句标识如何遍历层次结构。
遗憾的是,MySQL并没有这种能力。
答案 1 :(得分:0)
好吧,劳伦斯(在评论中)回答正确,我似乎已经退出SQL游戏了一段时间。
所以简单的答案是:
SELECT child.id as ChildID, parent.id as ParentID, grandparent.id as GrandparentID
FROM child JOIN parent JOIN grandparent
WHERE child.parentID = parent.id AND parent.parentID = grandparent.id
感谢所有没有铁杆的人投下这个可怕的问题。