我有一个MySql数据库。
SQL SELECT加入?
有产品和订单的 结构的表:
- 产品:PRODUCT_ID,名称,manufacturers_id
- 订单:orders_id,PRODUCT_ID,数量现在
我想要获得所有订单(仅显示产品manufacturer_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部分
编辑
为了澄清我的问题,我增加了一些新的信息:
我有一个MySQL的DB与MyISAM表。这两个相关的表是:
- orders_products:orders_products_id,orders_id,PRODUCT_ID,PRODUCT_NAME,PRODUCT_PRICE,PRODUCT_NAME,product_model,final_price,...
- 产品:products_id,manufacturers_id,...
(有关表格的完整信息见截图的产品(Screenshot)和截图orders_products(Screenshot))
现在我想是这样的: - 获取所有订购产品与manufacturer_id = 1的订单。以及此订单的产品的产品名称(与manufacturer_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 server被困住了。 错误在哪里?
因为混乱的关于我的编辑我打开一个新的更容易理解的职位: SQL Inner Join : DB stuck
您使用的是什么RDBMS? – 2010-03-15 12:35:29
它顶部是“MySQL”。 – 2010-03-15 12:36:07
您说“product_id = 1,但是您的查询显示manufacturer_id = 1 ...需要澄清哪一个是正确的 – 2010-03-15 12:46:04