从与其列匹配的表中选择,并在另一个表中选择该id的id或childeren,并将重复项限制为10

时间:2016-07-20 02:10:59

标签: mysql sql hierarchical-data

我有两个名为region和data的表。

regions
<Id>, <Name>, <ParentId>
1      a          0
2      b          0
3      c          1

data
<Id>, <Url>, <RegionId>
1     "..."     3
2     "..."     2
3     "..."     1
4     "..."     1

例外结果当使用WHERE regions.ParentId = 0 condition

<data.Id>, <CatId>, <data.Url>
     3        1        ""
     4        1        ""
     2        2        ""
     1        1        ""  

我想获取数据记录,data.RegionId与regions.Id匹配或匹配regions.Id和...的子节点。然后创建名为CatId的新列,该列应该是具有子ParentId = 0的regions.Id。 我需要为每个CatId设置项目限制。例如10

1 个答案:

答案 0 :(得分:0)

答案中有一半问题返回匹配regionid或父ID的数据记录

select d.id , r.id as catid ,d.url 
from data d join regions r  on r.id = d.regionId 
union
select d.id , r.id  as catid ,d.url 
from data d join regions r  on r.parentid = d.regionId 

现在告诉我你真正想要的是什么,以便我们给出正确的答案