2011-05-21 83 views
0

我有這兩個表,如何在Zend Framework中使用Join?

S(ID,名字,姓氏,指明MyDate,安裝,SH)

用戶(UID,電子郵件,密碼,nameoffice)

這查詢

$ SQL =「SELECT s.id,s.firstname,s.lastname,s.mydate,s.mount,users.nameOffice FROM薩耶爾 LEFT JOIN用戶ON s.sh = users.sh按日期排序(s.mydate) DESC,s.mount DESC「;

我怎麼能在zend框架上寫這個查詢?

回答

3

一種方法是如下:

$db = Zend_Db_Table::getDefaultAdapter(); 
    $select = $db->select(); 

    $select->from(array('s' => 'sayer'), array('id', 'firstname', 'lastname', 'mydate', 'mount')) 
      ->joinLeft(array('u' => 'users'), 's.sh = u.sh', array('nameOffice')) 
      ->order(array('date(s.mydate) DESC', 's.mount DESC')); 

    print($select->assemble()); 

這導致:

SELECT `s`.`id`, `s`.`firstname`, `s`.`lastname`, `s`.`mydate`, `s`.`mount`, 
    `u`.`nameOffice` FROM `sayer` AS `s` LEFT JOIN `users` AS `u` ON s.sh = u.sh 
    ORDER BY date(s.mydate) DESC, `s`.`mount` DESC 

詳細看看Zend_Db_Select

+0

它只是當我把數組,而不是數組('nameoffice'),當我使用數組('nameoffice') – ulduz114 2011-05-21 11:29:04

+0

@ ulduz114什麼問題。我不知道。組裝的sql與你的問題相同。你有什麼錯誤或什麼? – Marcin 2011-05-21 12:11:42

+0

是的,當我把數組('nameoffice'),我得到錯誤 – ulduz114 2011-05-21 13:37:18