Посмотрите на этот код:
$sql = $this->getAdapter()->select()
->from(array('mab' => 'module_adv_banner'))
->joinLeft(array('mafb' => 'module_adv_filebanner'),'mab.id = mafb.id_banner',array('source','type'))
->joinLeft(array('macb' => 'module_adv_contentbanner'),'mab.id = macb.id_banner',array('content','type'))
->where('mab.id = ?', $this->_id)
->order('position asc');
В этом запросе я использую 3 таблицы.Сначала с 'mab'
псевдоним - это главная таблица баннеров.Две другие таблицы 'mafb'
и 'macb'
являются конкретными таблицами для разных типов баннеров.Если баннер - изображение или swf, он хранится в таблице «mafb», в случае баннера-информера я использую другую таблицу - 'macb'
. В этом запросе я выбираю все необходимые элементы баннера.Только в одной из двух конкретных таблиц есть строка с id_banner = mab.id = $this->_id,
, и у каждой из этих таблиц есть поле 'type'.Если он находит эту строку в первой таблице, значение 'type' равно нулю, поскольку оно перезаписывается значением 'type' второй таблицы.Как я могу решить эту проблему?
С наилучшими пожеланиями, Ахмед.
ps извините, если мое объяснение затруднительно, у меня нет хорошего знания английского языка.