SQL SELECT Присоединиться? - PullRequest
0 голосов
/ 15 марта 2010

У меня есть 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: БД застряла

Ответы [ 3 ]

2 голосов
/ 15 марта 2010

Это должно сделать это!

SELECT
*.orders
FROM orders INNER JOIN products
ON orders.product_id = products.product_id
WHERE products.manufacturers_id =1
ORDER BY orders_id
1 голос
/ 15 марта 2010

Простой способ будет:

SELECT * FROM Orders WHERE product_id = 1
0 голосов
/ 15 марта 2010

ГДЕ products.manufacturers_id = 1 AND products.product_id = orders.product_id

Это если вы хотите объединить две таблицы. И, кроме того, вы запрашиваете product_od вместо product_id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...