我正在尝试在codeigniter中加入两个表,在这两个表中,一个表包含商业想法,而在另一个表中,它包含对每个想法的投票。我给了idea_id是user_votes表中的外键。我需要加入这两个表并显示所有想法和&他们各自的好恶。在user_votes表中还有一件事我采用了一列user_action,我将标志1设置为like,将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();
未经测试。