У меня есть база данных MySql.
SQL SELECT Join?
Существует таблица с продуктами и заказами с структурой:
- продукты: product_id, имя, manufacturers_id
- заказов: orders_id, product_id, количество
Теперь я хотите получить все заказы (показывать только те продукты, в которых производитель products_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
Но это не работает. Что не так?
Sry для редактирования: кто-то еще отредактировал мой пост конца удалили essentiell часть вопроса
EDIT
Чтобы прояснить мою проблему, я добавил новую информацию:
Я получил MySQL DB с таблицами MyISAM. Две соответствующие таблицы:
- orders_products: orders_products_id, orders_id, product_id, product_name, PRODUCT_PRICE, product_name, Код продукта, final_price ...
- продукты: products_id, manufacturers_id, ...
(для получения полной информации о таблицах см скриншот продукты (Screenshot) и скриншот orders_products (Screenshot))
Теперь то, что я хочу это: - Получите все Заказы, которые заказывали продукты с производителями_id = 1. И название продукта продукта этого заказа (с производителями_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-х. Но запрос thies занимает много времени, чтобы выполнить выполнение, даже если он работает. Два раза сервер sql застрял. Где ошибка?
Из-за запутанной о моих правок я открыл новый более понятный пост: SQL Inner Join : DB stuck
Какие СУБД вы используете? – 2010-03-15 12:35:29
Он говорит «MySQL» наверху. –
Вы говорите «product_id = 1, но в вашем запросе указано, что manufacturer_id = 1 ... нужно уточнить, на каком правильном правиле –