如何在codeigniter中加入表?

时间:2014-10-06 12:28:38

标签: mysql codeigniter join

我正在尝试在codeigniter中加入两个表,在这两个表中,一个表包含商业想法,而在另一个表中,它包含对每个想法的投票。我给了ide​​a_id是user_votes表中的外键。我需要加入这两个表并显示所有想法和&他们各自的好恶。在user_votes表中还有一件事我采用了一列user_action,我将标志1设置为like,将2设置为不喜欢。请有任何解决方案如何加入这种情况。

这是我的表结构 enter image description here

这是我的投票表

enter image description here

2 个答案:

答案 0 :(得分:1)

$this->db->select('business_ideas.*, user_votes.user_action');
$this->db->from('business_ideas');
$this->db->join('user_votes', 'business_ideas.id = user_votes.idea_id', 'inner');
$result = $this->db->get();
$finalOutput = $result->row_array();
print_r($finalOutput);

但是需要对表格中的表格结构进行一些更正" business_ideas",您的主键应该是' id'而不是' idea_id'。

答案 1 :(得分:0)

$results = 
    $this->db
    ->select('business_ideas.*,
        SUM(case when user_votes.user_action=1 THEN 1 ELSE 0 END) as likes,
        SUM(case when user_votes.user_action=2 THEN 1 ELSE 0 END) as dislikes
    ')
    ->from('business_ideas')
    ->join('user_votes', 'business_ideas.idea_id = user_votes.idea_id', 'inner')
    ->group_by('business_idea.idea_id')
    ->get();

未经测试。