我有一个包含2个表电影和流派的数据库。电影表格类型具有数组值。 现在,当我查询它时,就像这样
id movie name genres
1. Adventure - 1, 2
但我想加入这两个表并显示值
id movie name genres
1. Adventure - action, adventure
这是我的两张桌子
Movie Genres table
id | name | slug
1 action action
2 adventure adventure
3 comedy comedy
Movies table
id | movie_name | genres
1 | Avengers | 1,2
需要帮助,谢谢
答案 0 :(得分:0)
您可以运行以下查询来获得此结果
SELECT m.id, m.movie_name, GROUP_CONCAT(g.name) as genres
FROM movie m
INNER JOIN genres g
on FIND_IN_SET(g.id, m.genres)
GROUP BY m.id
检查SQL小提琴:http://sqlfiddle.com/#!9/40a438/2
在codeigniter中,
$this->db->select("m.id, m.movie_name, GROUP_CONCAT(g.name) as genres");
$this->db->from("movie m");
$this->db->join("genres g", "FIND_IN_SET(g.id, m.genres)", "inner");
$this->db->group_by("m.id");
$this->db->get()->result_array();