次の構造を使用する select ステートメントを作成しようとしています。
$db
->select()
->from(
array('i' => ...),
array('provisional', 'itemID', 'orderID'))
->columns(array("'0' AS provisionalQty", "'ballast' AS productType"))
->joinLeft(
array('o' => ...),
'i.orderID = o.orderID', array())
->joinLeft(
array('f' => ...),
'i.productID = f.fixtureID AND f.supplierID = o.supplierID', array())
->joinLeft(
array('b' => ...),
'f.lampTechnology = b.lampTechnology ' .
' AND f.lampCount = b.lampCount ' .
' AND f.ballastVoltage = b.ballastVoltage ' .
' AND b.supplierID = o.supplierID')
->where('i.orderID = ?', $oObj->orderID, Zend_Db::INT_TYPE)
->where('!i.hidden AND i.productType = ? AND !i.provisional', 'fixture')
MySQL で同等のものは次のようになります (正常に動作します)...
SELECT '0' AS provisionalQty, 'ballast' AS productType, i.* FROM ... LEFT JOIN ... WHERE ...;
ただし、これは期待どおりには機能しません。$db->columns() メソッドは、「疑似」列であっても、各列にテーブルが関連付けられていることを想定しています。何か案は?
-クリス