我有一个带电影的数据库。例如:
table: movies
Id - Title - Actors
2 - Avangers - 2,5,11,16
table: actors
Id - Name
2 - Jason
5 - Emma
11 - Stuart
16 - Thomas
我的问题:如何用.li.s这样打印出来:
Avengers:
*Jason
*Emma
*Stuart
*Thomas
答案 0 :(得分:1)
如果你必须将电影表中的演员保持为逗号分隔的Id列表,那么我能想到的最好的是:在一个查询中获取该列,提取不同的Id,为每个Id运行一个查询找出这个名字。
正如一位评论员所说,这不是最好的数据库设计。我建议从电影表中删除actor列,并使用第三个表作为电影 - 演员关系:
table:movieactor
movie actor
------------
2 2
2 5
2 11
2 16
然后,您可以运行内部联接以查找出现在给定影片中的演员名称。
SELECT actors.Name from movieactor INNER JOIN actors ON movieactor.actor = actors.Id WHERE movieactor.movie = 2