В запросе к БД фигурируют 3 таблицы. Нужны данные по двум условиям - MySQL

Узнай цену своей работы

Формулировка задачи:

1. Первая таблица oc_product. Берем поля model и geolocation 2. Вторая таблица oc_product_description. Берем поля name и meta_keyword 3. Третья таблица oc_product_to_category нужна для сопоставления: поле product_id (также представлено в первых двух таблицах) используется как ключ для фильтра по значению category_id, где значение category_id = 45. 4. Еще одно условие: в выборку попадают только поля languge_id=1 из таблицы oc_product_description. двумя разными запросами я это сделал, но тогда "буксует" дальнейшая логика решения задачи. Вот работающие запросы, выводящие нужные данные массивом: №
1. SELECT * FROM oc_product WHERE oc_product.product_id IN (SELECT oc_product_to_category.product_id FROM oc_product_to_category WHERE oc_product_to_category.category_id = 45)
№ 2.
SELECT * FROM oc_product_description WHERE oc_product_description.language_id = 1 AND oc_product_description.product_id IN (SELECT oc_product_to_category.product_id FROM oc_product_to_category WHERE oc_product_to_category.category_id = 45)
Попытки объединить в одно целое пока что тщетны. и JOIN и UNION пытался приспособить - все безуспешно Прошу совета.

Решение задачи: «В запросе к БД фигурируют 3 таблицы. Нужны данные по двум условиям»

textual
Листинг программы
SELECT op.model, op.geolocation, opd.name, opd.meta_keyword
FROM  oc_product_to_category optc, oc_product op , oc_product_description  opd
WHERE optc.category_id  = 45
AND   op.product_id     = optc.product_id
AND   opd.product_id    = op.product_id
AND   opd.language_id   = 1

Объяснение кода листинга программы

  1. SELECT - выбранные поля: op.model, op.geolocation, opd.name, opd.meta_keyword
  2. FROM - таблицы: oc_product_to_category (optc), oc_product (op), oc_product_description (opd)
  3. WHERE - условия: optc.category_id = 45 AND op.product_id = optc.product_id AND opd.product_id = op.product_id AND opd.language_id = 1

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4 из 5
Похожие ответы