我有一个表(“名称”),其中包含与依赖于ID的其他表中的其他数据相关的数据。例如:
*名称表
id | name | predecessor | successor | house | birthplace
-----------------------------------------------------------------
10 Bayezid II 9 11 4 NULL
11 Selim I 10 12 4 5
12 Suleiman 11 13 4 61
*房屋表
id | house
--------------
4 House of Osman
*地方表
id | place
--------------
5 Amasya
61 Trabzon
我要完成的工作是构造一个查询,该查询导致根据id返回整个信息,例如:
{"result":[{
"id":"11",
"name":"Selim I",
"predecessor": "Bayezid II",
"successor": "Suleiman",
"house":"House of Osman",
"birthplace":"Amasya"
}]}
因此,房屋的名称和出生地是从其他表(“房屋”,“地方”)中获得的,而前任和后继者是从同一表中获得的。我需要构建此查询的帮助。谢谢。
只需自我加入几次,一次即可获得前任的行(n0
如下所示),而再一次获得后继的行(n2
):
SELECT n1.id, n1.name, n0.name AS predecessor, n2.name AS successor
FROM names n1
LEFT JOIN names n0 ON n1.predecessor = n0.id
LEFT JOIN names n2 ON n1.successor = n2.id
留下来获得房屋和出生地的链接作为练习。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句