Задать вопрос

Как за один запрос объединить 3 таблицы с лимитом?

Есть 3 таблицы:
Goods: id, name
Prices: pid, price
Images: pid, filename, order

Для одного товара может быть несколько цен и картинок.

Нужно выбрать за один SQL-запрос все товары, к которым должна быть добавлена минимальная цена и картинка с order=0
Не растет кокос уже два дня :-(

Выбрать одну картинку получается так:
SELECT `g`.*, `i`.`filename` FROM `goods` AS `g` LEFT JOIN `images` AS `i` ON `i`.`id` = ( SELECT `i1`.`id` FROM `images` AS `i1` WHERE `g`.`id` = `i1`.`pid` ORDER BY `i1`.`order` LIMIT 1) WHERE 1
(добавил id в таблицу Images)
А если по такому же принципу еще добавляю цену - не работает запрос.
  • Вопрос задан
  • 155 просмотров
Подписаться 1 Средний 8 комментариев
Решения вопроса 1
MAXiDROME
@MAXiDROME Автор вопроса
Добавил табличку с ценой - заработало. Видимо, до этого делал какие-то опечатки несколько раз подряд.
Теперь новый вопрос - насколько эффективен такой запрос? На 10 тыс. товаров, 15 тыс. картинок и 20 тыс. цен выполняется за 0,1579 сек.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы