繁体   English   中英

mysql多对多关系

[英]mysql many to many relationship

你好,我有两张桌子,分别是大学工业 大学将拥有许多工业,而工业将拥有许多大学。 因此,为了实现这种多对多关系,我创建了另一个名为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.纽约大学

->会计

->财务

代替

  1. 纽约大学

    ->会计

  2. 纽约大学

    ->财务

希望你能理解我的问题。 我正在研究Php,我不知道我是否可以在执行php代码时达到此特定结果,也可以直接从查询中实现。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM