У меня есть 2 таблицы: orders
и items
.Каждый order
имеет много items
.Каждый item
имеет type
.Я хочу запрос, который возвращает все заказы, у которых элемент НАИБОЛЕЕ ПОСЛЕДНИЙ имеет type = 2
. Я могу построить коррелированное предложение EXISTS, которое фильтрует заказы, где ЛЮБОЙ из элементов имеет type=2
SELECT * FROM orders
WHERE EXISTS(
SELECT NULL
FROM items
WHERE order_id = orders.id
AND type=2
ORDER BY id DESC
LIMIT 1
)
но, судя по всему, я не могу сформулировать запрос, чтобы отфильтровать заказы для тех, чей элемент MOST RECENT имеет тип = 2
Я также пробовал каждую комбинацию JOIN, чтобы попытаться преодолетьпредложение LIMIT игнорируется.Ничего не работает.
Мне кажется, это должно быть просто.