2014-10-06 38 views
0

我試圖在codeigniter中加入兩個表,在這兩個表中一個表包含商業想法,並在另一個表中包含對每個想法的投票。我已經給出了idea_id是user_votes表中的外鍵。我需要加入這兩張表,並且顯示他們各自喜歡和不喜歡的所有想法&。 user_votes表中還有一件事我已經採取了一列user_action,並且我將標誌1設置爲2,並將其設置爲不喜歡2。請在這種情況下如何加入任何解決方案。

這裏是我的表結構 enter image description here如何在codeigniter中加入表格?

這是我的表決表

enter image description here

+1

你到目前爲止試過的東西? – Girish 2014-10-06 12:32:35

回答

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

未測試。

+0

它適合我。 – sangam 2014-10-06 15:08:33

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

爲什麼會出現主鍵的名稱? – Shomz 2014-10-06 12:52:04

+1

它不是強制性的夥伴,但良好的編碼習慣需要修改。但休息取決於你。 – 2014-10-06 12:55:10