我有一个 MySql 数据库。 <罢工>罢工>
<罢工>有一个包含产品和订单的表 结构:
- 产品:product_id、名称、makers_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
但这行不通。怎么了?
抱歉编辑:其他人编辑了我的帖子,最后删除了问题的重要部分
编辑
为了澄清我的问题,我添加了一些新信息:
我有一个带有 MyISAM 表的 MySQL 数据库。两个相关表是:
- 订单产品:订单产品 ID、订单 ID、产品 ID、产品名称、产品价格、产品名称、产品型号、最终价格,...
- 产品:products_id、manufacturer_id、...
(有关表格的完整信息,请参阅产品屏幕截图 ( Screenshot ) 和订单产品屏幕截图 ( Screenshot ))
现在我想要的是这样的: - 获取所有订购Manufacturer_id = 1产品的订单。以及该订单产品的产品名称(Manufacturers_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
最佳答案
应该可以了!
SELECT
*.orders
FROM orders INNER JOIN products
ON orders.product_id = products.product_id
WHERE products.manufacturers_id =1
ORDER BY orders_id
关于SQL SELECT 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2447031/