mysql有很多很多关系

时间:2016-10-18 23:18:43

标签: php mysql

你好我有两个表名大学行业。大学将拥有许多工业和工业将拥有许多大学。因此,为了实现这种多对多的关系,我创建了另一个名为 university_industry 的表。它有大学和行业的ID uni_idind_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

- >会计

- >金融

而不是

  1. NYC Uni

    - >会计

  2. NYC Uni

    - >金融

  3. 我希望你理解我的问题。我正在研究Php,我不知道我能用PHP代码实现这个特定的结果,或者我可以直接从查询中实现。

1 个答案:

答案 0 :(得分:1)

您无法通过单个查询实现此目的,因为它始终以表格格式返回数据。您必须根据所需的格式转换代码中的数据集