通过另外一个mysql/php连接两个表

ruyhziif  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(391)

假设我们有两张table


# film_info

[
movieID
movieValue1
movieValue2
]

# actor_info

[
actorID
actorValue1
actorValue2
]

我们还有


# film_actor

[movieID, actorID]

我想做的是通过电影演员加入那些电影和演员,这样我就可以选择一部电影,看到每一个演员,在其中的明星。

$db->prepare("SELECT * 
FROM film_info fi 
INNER JOIN film_actor fa 
ON fi.film_id = fa.film_id 
INNER JOIN actor_info ai 
ON fa.actor_id = ai.actor_id");

像这样的事情。它很管用,但能给我一系列所有演员的电影信息。例如,如果有6个演员,它将返回6个相同电影信息的数组,只有不同的 [actor_name] 每一次。
这就有一个问题:有没有办法让它返回一个包含所有参与者列表的数组?或者我应该编写一个函数来手动从6+数组中选择所有参与者吗?
对不起,我的英语不好,提前谢谢你!

nafvub8i

nafvub8i1#

你应该 group by 那电影呢 group_concat 所有的演员都回到了第一排。你也可以使用 using 对于 on 当两个表的列具有相同的名称时。这应该满足您的要求:

SELECT fi.movie_title, group_concat(actor_name_column) 
FROM film_info fi 
INNER JOIN film_actor using(film_id) 
INNER JOIN actor_info using(actor_id) 
group by film_id

相关问题