小编GZs*_*dio的帖子

使用 join 从单个查询中获取嵌套数组

我有共同的情况,但我找不到共同的解决方案......

想象一下我有两个表,如作者和相应的书籍:

作者

+----+-----------+
| id | name      |
+----+-----------+
|  1 | O.Connor  |
|  2 | F.Myler   |
+----+-----------+
Run Code Online (Sandbox Code Playgroud)

图书

+----+-----------+-----------+----------------+
| id | author_id | title     | number_of_pages|
+----+-----------+-----------+----------------+
|  1 | 1         |Book 1     |315             |
|  2 | 1         |Book 2     |265             |
+----+-----------+-----------+----------------+
Run Code Online (Sandbox Code Playgroud)

我想在一个sql查询中从数据库获取数据(我使用mySQL,但这并不重要,我想要一个独立于数据库的解决方案),使用JOIN,例如:

SELECT A.*, B.title as book_title, B.number_of_pages as book_pages FROM authors A LEFT JOIN books B ON B.author_id=A.id
Run Code Online (Sandbox Code Playgroud)

由于大型数据库的生产力问题,我想避免循环中的多个查询。然后我需要将第二个表中的数据嵌套为子数组,以避免拥有相同数据的多个副本。换句话说,我需要将数据库的平面结果转换为嵌套的多维数组。它应该给出类似的内容:

[
    {
        "id": 3,
        "name": "O.Connor",
        "birth_date": "05.06.1985",
        "from": "England",
        "mother": "", …
Run Code Online (Sandbox Code Playgroud)

php mysql arrays multidimensional-array

0
推荐指数
1
解决办法
1932
查看次数

标签 统计

arrays ×1

multidimensional-array ×1

mysql ×1

php ×1