В проекте Symfony я пытаюсь сделать запрос с вычисленным полем. Упростить много мой SQL будет что-то вроде этого:Symfony Doctrine: использование подзапроса с предложением «HAVING» без использования EXISTS
SELECT o.id, (p.price_a + p.price_b) as total_price
FROM objects o
INNER JOIN prices p
ON o.id = p.object_id
HAVING total_price > 10
Мой вычисляемое поле является более сложным и использовать внешние значения, которые меняются, и я не могу заранее рассчитать его.
Я хочу только отчетливый object.id Я добавил верхний код в качестве подзапроса:
SELECT DISTINCT o_id
FROM (
SELECT o.id as o_id, (p.price_a + p.price_b) as total_price
FROM object o
INNER JOIN price p
ON o.id = p.object_id
HAVING total_price > 10)
В Symfony Я хочу, чтобы этот запрос возвращает только отчетливый «объект» с.
Я пробовал много вариантов с построителем запросов, но я не могу добавить подзапрос в предложение FROM.
Я tryng, чтобы избежать использования неэффективных СУЩЕСТВУЕТ пункт:
SELECT DISTINCT o.id
FROM objects o
WHERE EXISTS (
SELECT p.*, (p.price_a + p.price_b) as total_price
FROM prices p
WHERE o.id = p.object_id
HAVING total_price > 10)
Есть ли способ сделать это с помощью Query Builder без использования «EXISTS»?
К сожалению HIDDEN не будет работать при использовании внутри подзапроса IN. См. Мой пример: gist.github.com/webdevilopers/aa6a0ea06d7b5d4f0b04 – webDEVILopers