2011-02-10 34 views
6

我如何把这个左连接查询:Zend公司如何创建一个LEFT JOIN

select advertisercontest.*, advertiseraccount.advertiserid, advertiseraccount.companyname 
from advertisercontest 
left join advertiseraccount on advertiseraccount.loginid = advertisercontest.loginid 
where advertisercontest.golive is not NULL; 

到左加入Zend的?

回答

19

你可以做如下:

$db = Zend_Db_Table::getDefaultAdapter(); 

    $select = $db->select(); 
    $select->from('advertisercontest', '*') 
      ->joinLeft(
        'advertiseraccount', 
        'advertiseraccount.loginid = advertisercontest.loginid', 
        array('advertiseraccount.advertiserid', 'advertiseraccount.companyname') 
        ) 
      ->where('advertisercontest.golive is not NULL');; 

    $result = $db->fetchAll($select); 

    var_dump($result); 

希望这是确定。

+0

太棒了!谢谢!我有个问题。我扩展了Zend_Db_Table_Abstract,并且我有这个: $ rows = $ this-> select() - > from('advertisercontest','*') - > joinLeft('advertiseraccount','advertiseraccount.loginid = advertisercontest。 ('advertisercontest.golive is not NULL') - > order('advertisercontestid DESC'); - > order('advertisercontestid DESC'); - > order('advertisercontestid DESC'); 但它没有工作?但你的例子..我在我的applications.ini resources.db.isDefaultTableAdapter = true – coder3 2011-02-10 22:03:56