首先,我知道我的问题标题有点或更令人困惑,所以让我尝试解释一下。
我有 3 张 table ,
- 公司
- company_branches
- 城市
因此,对于这些表格,我想从公司中选择所有表格并加入company_branches,然后加入城市。
所有只有一个 SQL 查询, 我希望最终得到一个公司列表,每个公司在名为“分支机构”的列下都有其分支机构(数组)。
参见下面的示例。
companies_table
id | name
--------+-----------------------
1 | microsoft
--------+-----------------------
2 | facebook
company_branches_table
id | company_id | city_id
--------+-----------------+-------------
1 | 1 | 3
--------+-----------------+-------------
2 | 1 | 2
--------+-----------------+-------------
3 | 2 | 1
cities
id | name
--------+-------------
1 | LA
--------+-------------
2 | New york
--------+-------------
3 | Chicago
这是我希望的结果
Json 或关联数组
[
{
id : 1,
name : microsoft,
branches : [
{
id : 2,
city_name : New york
},
{
id : 3,
city_name : Chicago
}
]
},
{
id : 2,
name : facebook,
branches : [
{
id : 1,
city_name : LA
}
]
}
]
希望你能理解。 提前致谢
<小时/>[编辑]
<小时/>顶部列出的表格
最佳答案
也许这会有所帮助
SELECT ct.id,ct.name,group_concat(c.id, '->', c.name) AS 分支机构 FROM Companies_table AS ct JOIN company_branches_table AS cbt ON ct.id = cbt.company_id JOIN 城市AS c ON c.id = cbt.city_id GROUP BY ct.id
关于php - 连接具有多个结果的表,然后合并到一列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54762879/