Php 如何修改此MySQL查询以获得特定的数据结构?
如果我有两个简单的表格: 照片:Php 如何修改此MySQL查询以获得特定的数据结构?,php,mysql,Php,Mysql,如果我有两个简单的表格: 照片: 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
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
我想获取给定所有者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查询是做不到的 我认为有两种方法可以实现你的目标:
好的这才是我真正需要确定的。谢谢@barbashov,我会在有能力的时候给你答案。:)