Задать вопрос
bootd
@bootd
Гугли и ты откроешь врата знаний!

Как можно оптимизировать запрос?

Задача состоит в следующем:
Получить типы и названия изделий, для изготовления которых используются самые дорогие по стоимости детали;

Есть 3 таблицы:
items [`id`, `view`, `name`, `description`] - Хранит изделия
details [`id`, `name`, `price`, `unit_detail`] - Хранит детали, из которых делают изделия
details_in_items [`id_item`, `id_detail`, `count`] - Хранит детали, используемые в изделии

[`id_item`,`id_detail`] в таблице details_in_items связаны основным ключём

Мой запрос такой:
SELECT view,name 
FROM `items` WHERE id IN (SELECT id_item FROM  details_in_items WHERE id_detail IN (SELECT id FROM `details` WHERE price=(SELECT MAX(price) FROM details)))
  • Вопрос задан
  • 148 просмотров
Подписаться 2 Оценить 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
Shwed_Berlin
@Shwed_Berlin
.net Software Developer
SELECT item.view, item.name, item.description
FROM items AS item
INNER JOIN details_in_items AS cross ON item.id = cross.id_item 
            AND cross.id_detail in (SELECT TOP 5 id FROM details ORDER BY price DESC)

выберет все изделия в которых используются 5 (TOP 5) самых дорогих деталей
Ответ написан
Ваш ответ на вопрос

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

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