Codeigniter加入2表数组

时间:2017-10-26 19:17:40

标签: codeigniter-3 jointable

我有一个包含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

需要帮助,谢谢

1 个答案:

答案 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();