У меня есть требование codeigniter-mysql
для выбора значений от table_2
, которые присоединяются к table_1
и должны применять инструкцию where в значении поля, разделенного запятой. Пробовал следующим образом,codeigniter FIND_IN_SET не работает с соединением
$where = $this->db->escape("FIND_IN_SET(table_1.id,table_2.places_id)<>0");
$this->db->select('table_2.*,GROUP_CONCAT(table_1.location)AS location');
$this->db->from('table_2');
$this->db->join('table_1', $where);
$this->db->where('ltable_2.packages_id', $id);
$results = $this->db->get();
return $results->result();
Но выше CodeIgniter возвращает объект БД следующий MySQL Query и ее не работает :(
SELECT `table_2`.*, GROUP_CONCAT(table_1.location)AS location FROM `table_2` JOIN `table_1` ON 'FIND_IN_SET(table_1.id,table_2.places_id)<>0' WHERE `ltable_2`.`packages_id` = <id-goes-here>
Кажется, что кавычки 'FIND_IN_SET(table_1.id,table_2.places_id)<>0'
создает проблему! Все помогает приветствуются разрешить вопрос.
Попробуйте добавить false в конце '$ this-> db-> select ('table_2. *, GROUP_CONCAT (table_1.location) AS location', FALSE);' – Saty
Почему вы избегаете часть 'FIND_IN_SET'? просто положите, как в 'join()' –
Было бы неплохо увидеть, что ошибка db возвращена –