我有两张桌子
Tab1
id Name Level
1 a1 1
2 a2 1
3 b1 2
4 b2 2
5 c1 3
6 c2 3
7 b3 2
8 c3 3
9 c4 3
Tab2
id linkid
1 3
3 6
1 7
7 8
3 9
我正在尝试获取级别= 1的不同级别的id
之类的东西Tab3
Level1 Level2 Level3
1 3 6
1 7 8
1 3 9
任何人都可以帮助我吗?
答案 0 :(得分:0)
以下声明对您提供的数据已足够......
SELECT lvl1.id AS Level1
, lvl2.id AS Level2
, lvl3.id AS Level3
FROM Tab2 lvl1
INNER JOIN Tab2 lvl2 ON lvl2.id = lvl1.linkid
INNER JOIN Tab2 lvl3 ON lvl3.id = lvl2.linkid
WHERE lvl1.id = 1
...但我认为你在某种程度上需要Tab1
纳入结果,所以这可能更接近你真正需要的
SELECT lvl1.id AS Level1
, lvl2.id AS Level2
, lvl3.id AS Level3
FROM Tab1 t1
INNER JOIN Tab2 lvl1 ON lvl1.id = t1.id
INNER JOIN Tab2 lvl2 ON lvl2.id = lvl1.linkid
INNER JOIN Tab2 lvl3 ON lvl3.id = lvl2.linkid
WHERE t1.id = 1
请注意,我认为Tab2.id
是Tab1.id
的外键