дублированное имя столбца при использовании соединения с Zend_Db_table

У меня есть две таблицы. У обоих есть столбец с названием «название». Когда я использую следующий фрагмент кода для соединения двух таблиц, я не могу получить доступ к одному из столбцов заголовков.

    $select = $this->select(Zend_Db_Table::SELECT_WITH_FROM_PART);
    $select->setIntegrityCheck(false);
    $select->join("service","service.id = lecture.service_id");
    return $select;

есть ли способ получить доступ к обоим столбцам?


person Moon    schedule 04.12.2009    source источник


Ответы (2)


Вам нужно переименовать один из столбцов, чтобы он не конфликтовал с другим. Если вы передаете массив в качестве необязательного третьего аргумента для join(), вы можете указать, какие столбцы извлекать из объединенной таблицы. Если одна или несколько записей в массиве хэшируются, то в качестве имени свойства будет использоваться хэш-ключ. С помощью приведенного ниже кода вы можете ссылаться на столбец title таблицы служб как «service_title» в результатах запроса. Если вам нужны другие столбцы из служебной таблицы, добавьте их в массив с хешами или без них по желанию.

$select = $this->select(Zend_Db_Table::SELECT_WITH_FROM_PART);
$select->setIntegrityCheck(false);
$select->join("service", "service.id = lecture.service_id",
              array("service_title" => "service.title");
return $select;
person JB Christy    schedule 21.12.2010

$select = $this->select();
$select->from(array('t'=>'table1'), array('table_title AS title_first','table_sendo_colun','table_third_colun'));
$select->setIntegrityCheck(false);
$select->join("service","service.id = t.service_id");
return $select;

Может быть, это может сделать работу.

С уважением.

person Rodrigo Ferrari    schedule 19.08.2010
comment
Чувак, я искал этот ответ повсюду. Спасибо за отличную идею. - person General Redneck; 15.12.2011