Таблица 1:
Код: Выделить всё
col1 | col2 | col3
1 | 1 | A
1 | 1 | B
2 | 2 | A
1 | 2 | C
2 | 2 | D
Таблица 2:
Код: Выделить всё
col4 | col5 | col6
101 | A | val1
101 | B | val2
101 | D | val3
Все записи таблицы 2 принадлежат тем записям таблицы 1,
col2 которых содержит 2 в поле значения.
Используя активные записи в Codeigniter, мне нужно получить следующие наборы результатов:
- Получить все записи, которые являются общими в таблице 1 и таблице 2 для col4 = 101, col1 = 2, col2 = 2
- Получить все записи, которые присутствуют только в таблице 1 для col4 = 101, col1 = 2, col2 = 2
- Получить все записи, которые присутствуют только в таблице 2 для col4 = 101, col1 = 2, col2 = 2
Код: Выделить всё
$this->db->select('Table1.*, Table2.*');
$this->db->from('Table2');
$this->db->join('Table1', 'Table1.col3=Table2.col5');
$this->db->order_by('Table1.col3');
$this->db->where('Table1.col1', '2');
$this->db->where('Table1.col2', '2');
$this->db->where('Table2.col4', '101');
$res=$this->db->get();
Код: Выделить всё
$this->db->select('Table1.*, Table2.*');
$this->db->from('Table2');
$this->db->join('Table1', 'Table1.col3=Table2.col5','right');
$this->db->order_by('Table1.col3');
$this->db->where('Table1.col1', '2');
$this->db->where('Table1.col2', '2');
$this->db->where('Table2.col4', '101');
$this->db->where('Table2.col5 IS NULL');
$res=$this->db->get();
Код: Выделить всё
$this->db->select('Table1.*, Table2.*');
$this->db->from('Table2');
$this->db->join('Table1', 'Table1.col3=Table2.col5','left');
$this->db->order_by('Table1.col3');
$this->db->where('Table1.col1', '2');
$this->db->where('Table1.col2', '2');
$this->db->where('Table2.col4', '101');
$this->db->where('Table2.col5 IS NULL');
$res=$this->db->get();
Подробнее здесь: https://stackoverflow.com/questions/586 ... -at-a-time
Мобильная версия