У меня есть таблица с двумя записями и подробная таблица с несколькими записями, связанными с основной таблицей.
Записи можно добавлять или удалять.
Я хочу показать все 2 записи, когда текущая роль пользователя не равна 18.
И когда текущая роль пользователя равна 18, показывать только 1 запись из основной таблицы, чья подробная таблица макс. Запись связана с основной записью, имеющей userId 78.
это мой код:
$this->db->select('BaseTbl.*');
$this->db->from('table1 as BaseTbl');
if($this->roleId == '18'){
$this->db->where('(select table2.userId from table2 where table2.masterId = BaseTbl.id ORDER BY table2.id DESC LIMIT 1)', '78');
}
Я пробовал это до сих пор:
$this->db->select('BaseTbl.*');
$this->db->from('table1 as BaseTbl');
$this->db->join('table2 as table2','table2.masterId = BaseTbl.id','left');
if($this->roleId == '18'){
$this->db->where('table2.userId', $this->userId);
$this->db->where('table2.id', 'max(id)');
}
Теперь показывает эту запись userId 78, но не последняя из указанных c запись основной таблицы.