У меня есть отношение 1-n между collections
и images
таблицами.Внутреннее соединение таблицы с использованием предела
Моя цель - выбрать все коллекции при условии, что вместе с тремя верхними изображениями любой найденной коллекции.
Как сделать это сейчас:
Запрос на коллекции:
SELECT * FROM "collections" WHERE SOME_CONDITION
После выбора всех коллекций, я выполнить запрос как это для каждой коллекции:
SELECT * FROM "images" WHERE "images"."collection_id" = MY_CURRENT_COLLECTION_ID LIMIT 3
Моя цель для этого в одном запросе:
SELECT "images".*
,"collections".*
FROM "collections"
INNER JOIN (SOME_MAGIC_TO_GET_THE_TOP_THREE_IMAGES_FOR_EACH_COLLECTION) AS "images" ON "images"."collection_id" = "collections"."id"
WHERE SOME_CONDITION
Любая идея?
P.S. Я использую postgresql.