Как выбрать данные из двух разных таблиц с одинаковым именем столбца в codeigniter - PullRequest
0 голосов
/ 10 мая 2018

Здравствуйте, пожалуйста, обратитесь мой следующий код, который находится в модели

public function common_report($where) {
    $this->db->select('*');
    $this->db->from('collect_data_form_history_db as ch');
    $this->db->join('board_artwork_history_db as bh','bh.shop_id = ch.shop_id');
    $this->db->where('bh.shop_id', $where);
    // $this->db->where('bh.shop_id',$where);
    $query = $this->db->get();
    return $query->result_array();
}

мне нужны все данные из таблицы collect_data_form_history_db и board_artwork_history_db. Я получаю данные, но в неправильном формате. В таблице 'collect_data_form_history_db' у меня 11 записей, а в board_artwork_history_db у меня 18 записей. поэтому данные, которые я получаю, должны быть 29 строк, а я получаю 198 строк, значит 11 * 18. подскажите пожалуйста решение

Ответы [ 3 ]

0 голосов
/ 10 мая 2018
 $this->db->select('t1.*, t2.*')
          ->from('collect_data_form_history_db t1, board_artwork_history_db t2')
          ->where('t1.shop_id = t2.shop_id')
          ->where('t2.shop_id', $where);

$query = $this->db->get();
0 голосов
/ 10 мая 2018

Попробуйте полное внешнее соединение

public function common_report($where) {
    $this->db->select('*');
    $this->db->from('collect_data_form_history_db as ch');
    $this->db->join('board_artwork_history_db as bh','bh.shop_id = ch.shop_id', 'full outer');
    $this->db->where('bh.shop_id', $where);
    // $this->db->where('bh.shop_id',$where);
    $query = $this->db->get();
    return $query->result_array();
}
0 голосов
/ 10 мая 2018

Для этого вам нужно использовать левое соединение. Попробуйте вот так

$this->db->join('board_artwork_history_db as bh','bh.shop_id = ch.shop_id', 'left');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...