Zend_Db_Select::joinLeftの3番目の引数に空の配列を指定すると、joinLeftで指定したテーブルのカラムをSELECTで取り出すカラムに追加されないようになります。

例:

PHP:
  1. $select->from(array('a'=>'tbl_a'),
  2.                   array('cnt'=>new Zend_Db_Expr('COUNT(*)')));
  3. $select->joinLeft(array('b'=>'tbl_b'),'a.id=b.id',array());
  4. $where = $db->quoteInto('b.tmp_id = ?', '2');
  5. $select->where($where);

上記のように作成したSQLは、次のようになります。

SQL:
  1. SELECT
  2.     COUNT(*) AS `cnt`
  3. FROM `tbl_a` AS `a`
  4.  LEFT JOIN `tbl_b` AS `b` ON a.id=b.id
  5. WHERE
  6.     (b.tmp_id = '2')

Tags: ,

コメントをどうぞ