2014-10-06 4 views
0

Я пытаюсь объединить две таблицы в codeigniter, в этих двух таблицах одна таблица содержит бизнес-идею, а в другой таблице она содержит голосование по каждой идее. Я дал idea_id внешний ключ в таблице user_votes. Мне нужно присоединиться к этим двум столам и показать всю идею & их соответствующие симпатии и антипатии. Еще одна вещь в таблице user_votes: я взял один столбец user_action, и я установил флаг 1 как есть, а 2 - как нелюбовь. пожалуйста, примите любое решение, как присоединиться к этому делу.

вот моя структура таблицы enter image description hereКак присоединиться к таблицам в codeigniter?

Это мой стол

enter image description here

+1

что вы пробовали? – Girish

ответ

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

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

+1

Его не обязательный приятель, но хорошая практика кодирования нуждается в его изменении. Но отдых до вас. –

Смежные вопросы