【发布时间】:2020-02-29 16:56:08
【问题描述】:
实际上,我想用 Doctrine 重现这个常规 SQL 查询:
SELECT SUM(b.nb_places * (SELECT pricing FROM param p WHERE t.date BETWEEN p.from_date AND p.to_date)) as gains from booking b INNER JOIN tour t ON b.tour_id = t.id;
根据两个日期之间的价格计算总收益。
我在存储库中编写了这个 DQL:
public function allBooking() {
$query = $this->manager->createQuery(
'SELECT
SUM(b.nbPlaces * SELECT p.pricing FROM \App\Entity\Param p WHERE t.date BETWEEN p.fromDate AND p.toDate)
FROM App\Entity\Booking b JOIN b.tour t'
);
return $query->getResult();
}
但是运行这个查询,我得到了:
[Syntax Error] line 0, col 24: Error: Expected Literal, got 'SELECT' (500 Internal Server Error)
如何使用 DQL 或使用 QueryBuilder 实现此查询?
谢谢帮助
【问题讨论】: