看看这段代码:Zend框架的查询问题
$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'值覆盖。我该如何解决这个问题?
Ahmed,谢谢。
p.s. 抱歉,如果我的解释很难,我没有很好的英语知识。
$此 - > _ ID是不是值(所以你不能 - >在哪里( 'mab.id =?',$这 - > _ ID) ), 是吗 ? – 2012-02-29 20:17:10
不,它有价值,这是分配给$ this - > _ id在__construct() – Ahmed 2012-03-01 16:17:57