我有两个表,分别命名为区域和数据。
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 条件时的异常结果
<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
最佳答案
回答了你问题的一半,返回匹配regionid或parent 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
现在告诉我你真正喜欢得到什么,以便我们给出正确的答案
关于mysql - 从一个表中选择其列与另一个表中的 id 或该 id 的子级相匹配的表,并将重复项限制为 10 个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38471213/