查询从多个表中获取值

时间:2014-03-20 06:45:23

标签: php mysql codeigniter join

我的表视频包含字段 videoid 流派(int-foreign key)语言(int-foreign key) )等我希望从流派表中获取流派的价值,从 movie_languages 获取语言

表的结构如下:

视频

enter image description here

类型

enter image description here

movie_languages

enter image description here

如何加入这3张表格,以获取与视频表格中每个视频相关的语言和流派。此外,当用户未在表单中选择流派/语言时,将将值0插入表中。这会影响查询吗?我正在使用编码器,我尝试使用以下查询,但无法正常工作。

$this->db->select('video.*,movie_languages.language,genre.genre');    
$this->db->join('genre', 'video.genre = genre.id');
$this->db->join('movie_languages', 'video.language = movie_languages.id');
$query = $this->db->get();

请帮帮我。

提前致谢。

2 个答案:

答案 0 :(得分:1)

试试这个

$this->db->select('video.*,movie_languages.language,genre.genre') 
         ->from('video')
         ->join('genre', 'video.genre = genre.id')
         ->join('movie_languages', 'video.language = movie_languages.id');
$query = $this->db->get();

答案 1 :(得分:1)

在这种情况下你需要一个左连接

试试这个

$query = $this->db
->select('v.*,ml.language,g.genre')
->from('video as v')
->join('movie_languages AS ml', 'v.language = ml.id', 'left outer')
->join('genre AS g', 'v.genre = g.id', 'left outer')
->get();