[英]How do I convert a one to many relationship to a flat array using mysql and php
如何使用mysql或php格式化与一个“行”的一对多关系?
主表
movie_id name
1 Portland
2 Blazers
多表
movie_id actor
1 Brandon
2 Greg
下面是我映射出的伪代码。 在继续之前,不确定在PHP或MYSQl中是否有任何本机可以提高效率。 我想我有两个查询。 一部带有电影信息。 一本带演员信息。 一旦它们成为数组,我将循环遍历以获取与演员的每部电影的单个记录。
movieInfo = = []
actorInfo = = []
Foreach(movieActorId)
If(actorId = movieActorId)
arrayPush(movieInfo[actorArray],actorInfo[name]);
最终的数组看起来像这样
movieInfo = array('movie_id' => '1',
'movie_name' => 'porland',
'actor' => array(Brandon,Greg)
);
也许这是您需要的:
SELECT m.movie_id, m.name AS movie_name, GROUP_CONCAT(a.actor SEPARATOR ',') AS actor
FROM movies m
JOIN actors a ON m.movie_id = a.movie_id
GROUP BY m.movie_id;
// Run query
$movieInfo = array();
while ($array = mysqli_fetch_assoc($result)) {
$array['actor'] = explode(',', $array['actor']);
$movieInfo[] = $array;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.