gpt4 book ai didi

php - MySql 选择结果合并了来自同一个表和其他表的多个查询

转载 作者:行者123 更新时间:2023-11-29 04:43:21 26 4
gpt4 key购买 nike

我有一个表('names'),其中包含与依赖于 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"
}]}

因此,房子的名称和出生地是从其他表('houses','places')中获取的,而前任和继任者则来自同一张表。我需要帮助构建此查询。谢谢。

最佳答案

只需自连接几次,一次获取前任的行(下面别名 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

SQL Fiddle demo

加入获得房子和出生地留给读者作为练习。

关于php - MySql 选择结果合并了来自同一个表和其他表的多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23724230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com