У меня есть одна запись в таблице листинга 1 в таблице property_address и три изображения в таблице property_images, которые принадлежат к одной записи в таблице листинга. Теперь, на самом деле, я хочу вернуть одну строку, все изображения. Но то, что я получаю, это 3 строки, и из-за этих 3 изображений с каждым изображением в таблице изображений свойств создается новая строка.Codeigniter join возвращает ту же запись три раза
У меня есть три таблицы
- листинг
- property_address
- property_images
Вот схема.
Это функция модели.
public function get_listing($where)
{
$this->db->select('dl.*,pi.*,ps.*');
$this->db->from('listing as dl');
$this->db->join('property_address as ps','ps.property_add_id=dl.prop_id');
$this->db->join('property_images as pi','pi.listing_id=dl.prop_id','right');
if(!empty($where))
{
$this->db->where($where);
}
$query=$this->db->get();
return $query->result();
}
Здесь контроллер.
public function testin()
{
$data=$this->dba->get_listing(array('dl.prop_id'=>2));
echo "<pre>";
print_r($data);
echo "</pre>";
}
Вы можете выполнить 'echo $ this-> db-> last_query();' после запроса в вашем контроллере, просмотреть запрос MySQL и использовать этот запрос для выполнения в phpmyadmin, чтобы увидеть, если есть проблема с запросом или не! – Viral
запрос работает с идеальной проблемой с одинаковыми множественными записями, но с разными изображениями – Vicky
Результат ожидается. У вас есть 3 строки в 'property_images', поэтому результат будет 3.Вы должны представить пример того, как вы хотите одну строку. –