У меня есть MySql DB.
Есть таблица с продуктами и заказами с
Структура:
- Продукты: идентификатор продукта, название, идентификатор производителя
- Заказы: orders_id, product_id, количество
Теперь я хочу получить все заказы (показывать только товары, где product sources_id = 1).
Я попробовал:
SELECT
orders.orders_id,
orders.product_id
FROM products, orders
WHERE products.manufacturers_id = 1
GROUP BY orders_id
ORDER BY orders_id
Но это не работает. Что не так?
Прошу прощения за редактирование: кто-то еще отредактировал мой конец сообщения, удалил существенную часть вопроса
EDIT
Чтобы прояснить мою проблему, я добавил новую информацию:
Я получил базу данных MySQL с таблицами MyISAM. Две соответствующие таблицы:
- orders_products: orders_products_id, orders_id, product_id, product_name, product_price, product_name, product_model, final_price, ...
- продукты: products_id, производители_id, ...
(для полной информации о таблицах см. Скриншоты продуктов ( Снимок экрана ) и скриншот orders_products ( Скриншот ))
Теперь я хочу вот что:
- Получить все заказы, которые заказывали товары с sources_id = 1. И название товара товара этого заказа (с Manufacture__ID = 1). Сгруппированы по заказам.
То, что я до сих пор делал, это:
SELECT
op.orders_id,
p.products_id,
op.products_name,
op.products_price,
op.products_quantity
FROM orders_products op , products p
INNER JOIN products
ON op.products_id = p.products_id
WHERE p.manufacturers_id = 1 AND
p.orders_id > 10000
p.orders_id> 10000 для тестирования, чтобы получить только несколько order_id.
Но этот запрос требует много времени для выполнения, если он даже работает.
Два раза завис сервер sql.
Где ошибка?
Из-за путаницы в моих изменениях я открыл новый более понятный пост:
Внутреннее соединение SQL: БД застряла