你好我有两个表名大学和行业。大学将拥有许多工业和工业将拥有许多大学。因此,为了实现这种多对多的关系,我创建了另一个名为 university_industry 的表。它有大学和行业的ID uni_id
和ind_id
。我有一个学生表,其中uni_id
作为外国ID。所以我希望得到所有那些在学生桌上的大学,以及那些特定大学的所有行业。这是我做过的查询
SELECT university . * , industry . *
FROM university
JOIN university_industry ON university_industry.uni_id = university.uni_id
JOIN industry ON industry.ind_id = university_industry.ind_id
WHERE university.uni_id IN (select uni_id from student where uni_id IS NOT NULL)
此查询的问题是我得到了这样的结果
Array
(
[0] => Array
(
[university] => Array
(
[uni_id] => 1
[uni_name] => NYC Uni
)
[industry] => Array
(
[ind_id] => 1
[ind_name] => Finance
)
)
[1] => Array
(
[university] => Array
(
[uni_id] => 1
[uni_name] => NYC Uni
)
[industry] => Array
(
[ind_id] => 2
[ind_name] => Accounting
)
)
)
我希望结果像这样
(
[0] => Array
(
[University] => Array
(
[uni_id] => 1
[uni_name] => NYU
)
[Industry] => Array
(
[0] => Array
(
[ind_id] => 1
[ind_name] => Finance
[UniversityIndustry] => Array
(
[id] => 1
[uni_id] => 1
[ind_id] => 1
)
)
[1] => Array
(
[ind_id] => 2
[ind_name] => Accounting
[UniversityIndustry] => Array
(
[id] => 2
[uni_id] => 1
[ind_id] => 2
)
)
)
)
因此,我需要单个索引数组中的所有行业。所以就像它应该像这样
1.NYC Uni
- >会计
- >金融
而不是
NYC Uni
- >会计
NYC Uni
- >金融
我希望你理解我的问题。我正在研究Php,我不知道我能用PHP代码实现这个特定的结果,或者我可以直接从查询中实现。
答案 0 :(得分:1)
您无法通过单个查询实现此目的,因为它始终以表格格式返回数据。您必须根据所需的格式转换代码中的数据集