gpt4 book ai didi

php - 如何修改此 MySQL 查询以获得特定的数据结构?

转载 作者:行者123 更新时间:2023-11-29 13:55:41 25 4
gpt4 key购买 nike

如果我有两个简单的表:

照片:

photoid | filename            | albumid
1 | something.jpg | 1
2 | somethingelse.jpg | 1

还有一个相册表:

  albumid   | album_name        | owner_id
1 | My Holiday 2012 | 1
2 | My Holiday 2013 | 6

我想获取给定 owner_id 的所有相册中包含的所有照片

我可以执行以下操作:

select albums.*, photos.*
from photo_albums as albums
left join photos as photos
on albums.albumid = photos.albumid
where albums.owner_id = :owner_id

这将返回 2 行,针对每张照片以及相关相册数据。

但是我想做的是仅返回每个专辑的行。照片行嵌套在每个相册行中。

返回类似于以下内容的输出:

[{
albumid : 1,
album_name : My Holiday 2012,
owner_id : 1,
photos : {
photoid : 1,
filename : something.jpg
},
{
photoid : 2,
filename : somethingelse.jpg
}
}]

是否有一种简单有效的方法可以在 MySQL 查询本身中执行此操作?如果是这样怎么办?或者,我是否可以更好地从原始查询中获取完整的行数据,并通过循环 php 中的行将数据构造到此输出中?

提前致谢

最佳答案

你无法通过修改 SQL 查询来做到这一点。

我认为有两种方法可以实现您的目标:

  1. 对输出进行后处理以构建所需的数组结构。
  2. 使用 ORM (对象关系映射)自动将查询结果映射到对象。例如,参见Doctrine .

关于php - 如何修改此 MySQL 查询以获得特定的数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15908846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com