选择
booking_request.book_id,
booking_request.pickup_loc,
booking_request.drop_loc,
booking_request.journey_date,
booking_request.return_date,
booking_request.distance,
booking_request.est_fare,
DvrExp。开支费用,
PndBal.pending AS payment_Pending,
PymtRcvd.receive AS Payment_Recevied,
booking_details.car_id AS car_id,
booking_details.car_name AS car_name,
booking_details.driver_id AS driver_id,
booking_details.driver_name AS DRIVER_NAME
FROM booking_request
LEFT JOIN booking_details
ON booking_request.book_id = booking_details.book_id
LEFT JOIN(
SELECT book_id,
SUM(量)AS费用
FROM driver_expense GROUP BY book_id )DvrExp
ON DvrExp.book_id = booking_details.book_id
LEFT JOIN(
SELECT book_id,
SUM(amount_pending)AS未决
FROM payment_balance GROUP BY book_id)PndBal
ON PndBal.book_id = booking_details.book_id
LEFT JOIN(
选择book_id,
SUM(量)AS接收
FROM payment_receive GROUP BY book_id)PymtRcvd
ON DvrExp.book_id = booking_details.book_id
WHERE booking_request.status = '封闭'如何写Zend的子查询2
0
A
回答
0
从booking_request在主选择缺少子句
SELECT booking_request.book_id
,booking_request.pickup_loc
,booking_request.drop_loc
,booking_request.journey_date
,booking_request.return_date
,booking_request.distance
,booking_request.est_fare
,DvrExp.expenses AS expenses
,PndBal.pending AS payment_Pending
,PymtRcvd.receive AS Payment_Recevied
,booking_details.car_id AS car_id
,booking_details.car_name AS car_name
,booking_details.driver_id AS driver_id
,booking_details.driver_name AS driver_nameFROMbooking_request
FROM booking_request
LEFT JOIN booking_details ON booking_request.book_id = booking_details.book_idLEFT
JOIN (
SELECT book_id
,SUM(amount) AS expenses
FROM driver_expense
GROUP BY book_id
) DvrExp ON DvrExp.book_id = booking_details.book_id
LEFT JOIN (
SELECT book_id
,SUM(amount_pending) AS pending
FROM payment_balance
GROUP BY book_id
) PndBal ON PndBal.book_id = booking_details.book_id
LEFT JOIN (
SELECT book_id
,SUM(amount) AS receive
FROM payment_receive
GROUP BY book_id
) PymtRcvd ON DvrExp.book_id = booking_details.book_id
WHERE booking_request.STATUS = 'Closed'
1
请参阅最后一个例子中(#17 - 开始线268上的)一个要点的我在Github创建: https://gist.github.com/andrewscaya/8b7d53cffd7c1cb61c234c0de126e964
以供将来参考:
use Zend\Db\Sql\Select;
use Zend\Db\Sql\Where;
use Zend\Db\Sql\Expression;
$sqlExpression = new Expression('MAX(`sku`)');
$subSelect = new Select();
$subSelect->from('purchases')
->columns([$sqlExpression]);
$where = new Where();
$where->in('sku', ['sku' => $subSelect]);
$select = new Select();
$select->from('products');
$select->where($where);
0
$select = $this->getSql()->select();
$select->join('booking_details','booking_request.book_id = booking_details.book_id',array('car_id', 'car_name','driver_id', 'driver_name'),"LEFT");
$select->join(array('DvrExp' => '(SELECT book_id, SUM(amount) AS expenses FROM driver_expense GROUP BY book_id)'),'DvrExp.book_id = booking_details.book_id',array('expenses'),"LEFT");
$select->join(array('PndBal' => '(SELECT book_id, SUM(amount_pending) AS pending FROM payment_balance GROUP BY book_id)'),'PndBal.book_id = booking_details.book_id',array('pending'),"LEFT");
$select->join(array('PymtRcvd' => '(SELECT book_id, SUM(amount) AS receive FROM payment_receive GROUP BY book_id)'),'PymtRcvd.book_id = booking_details.book_id ',array('receive'),"LEFT");
$select->where("booking_request.status = '".$booking_type."'");
$this->_set_date_filter($select,$params);
$select->where("booking_request.request_date > '2016-06-07 00:00:00'");
//echo $select->getSqlString(); die;
$resultSet = $this->selectWith($select);
return $resultSet;
相关问题
- 1. Zend框架2:子查询
- 2. 使用Zend DB编写子查询
- 3. 如何在Zend Framework中编写类似查询2
- 4. 如何编写子查询?
- 5. Zend 2 sql查询问题
- 6. 如何在zend框架中使用子查询执行查询
- 7. Zend子查询参数
- 8. 如何重写JOIN中的子查询?
- 9. 用zend框架编写自定义查询2
- 10. 如何重写包含重复的子查询的SQL查询?
- 11. 如何有SQL查询2级的子查询分为
- 12. 如何打破子查询到2个简单的查询
- 13. Doctrine 2子查询
- 14. 如何写多行父查询单行返回子查询子查询
- 15. zend框架2从插件查询
- 16. Zend Framework中的SQL子查询1.12
- 17. 写回到Zend Dom查询对象
- 18. 在Zend框架中编写sql查询
- 19. 写在Zend框架下删除查询
- 20. Zend的Lucene的 - 如何做查询
- 21. 我如何写同样的连接查询我写了子查询?
- 22. 如何将这个查询翻译成zend framework 2语法?
- 23. 如何使用Zend Framework 2运行原始SQL查询
- 24. 如何重写与查询有联系的子查询SQL查询
- 25. 如何在java中为多个子查询编写solr查询?
- 26. 如何在Doctrine2中编写此查询? (子查询+连接)
- 27. 如何重写此查询而不重复SELECT子查询
- 28. 如何用Zend Framework编写这个查询?
- 29. 如何编写子查询并使用Hive中的“In”子句
- 30. 合并2个子查询
我认为这个问题是更多关于如何建立使用ZF该请求。不是严格的sql语法,但我可能是错的。 – Unex