Помогите с составлением хитрого запроса

Кощей

if(!$needle) die("ooh");
Помогите с составлением хитрого запроса

Выбрать из таблицы фотографий айдишки 3 галерей в которые последние были добавлены фотки, и по 4 фотки каждой галереи

таблицы
photo
:id_photo (auto_increment)
:id_gallery

gallery
:id_gallery
 

Beavis

Banned
а порядок добавления фоток только по id отследить можно??
 

Gas

может по одной?
Одним запросом это лучше не делать - производительного решения не встречал. Делай 2-мя запросами, сначала достать галереи, которые были изменены последними, потом склеить 3 запроса через UNION ALL и получить фотки.

Получение галерей.
1. Когда галерей не много (до нескольких сотен), а фоток в них много:
Код:
SELECT id FROM
(
  SELECT g.id, (SELECT add_time FROM photo WHERE id_gallery=g.id ORDER BY add_time DESC LIMIT 1) AS add_time
  FROM gallery AS g
) AS t
ORDER BY add_time DESC
LIMIT 3
индекс (id_gallery,add_time)

2. ну если галерей много, то я бы ввёл денормализацию - дополнитьельное поле в таблицу gallery, которое бы содержало дату последнего обновления и по нему выбирал последние 3 галереи.
 
Сверху