Table A ------------------------------------- | id | parent_id | title_code | ------------------------------------- | 1 | 1 | 3 | | 23 | 1 | 2 | | 36 | 1 | 2 | | 40 | 23 | 5 | | 38 | 36 | 5 | | 17 | 40 | 8 | ------------------------------------- Table B ------------------------------------- | id | title | ------------------------------------- | 3 | Title1 | | 2 | Title2 | | 5 | Title4 | | 8 | Title3 | ------------------------------------- Desired Result: --------------------------------- | id | child | parent | --------------------------------- | 1 | Title1 | Title1 | | 23 | Title2 | Title1 | | 36 | Title2 | Title1 | | 40 | Title4 | Title2 | | 38 | Title4 | Title2 | | 17 | Title3 | Title4 | ---------------------------------
答案 0 :(得分:2)
经过测试和工作的查询:(基于@ xQbert的查询 - 进行一些更改)
SELECT Main.id, Child.title as Child, Parent.title as Parent
FROM table_A as Main
INNER JOIN table_A as Sub
ON Sub.id = Main.parent_id
INNER JOIN table_B as Parent
ON Main.title_code = Parent.id
INNER JOIN table_B as Child
ON Child.id = Sub.title_code
答案 1 :(得分:1)
看起来你需要自己加入A两个表的别名,然后将它们分别连接到B。
也许是这样的。
SELECT Main.ID, Child.Title as Child, Parent.Title as parent
FROM A as Main
INNER JOIN A as Sub
on Sub.ID = Parent.Id
INNER JOIN B as Parent
on A.Title_Code = B.ID
INNER JOIN B as Child
on Child.ID = Sub.Title_Code
答案 2 :(得分:0)
类似的东西:
SELECT table_a.id, child.title AS child, parent.title AS parent
FROM table_a
LEFT JOIN table_b AS parent ON parent.id=table_a.parent_id
LEFT JOIN table_b AS child ON child.id=table_a.child_id