gpt4 book ai didi

SQL 内部连接 ​​: DB stuck

转载 作者:行者123 更新时间:2023-11-29 05:45:42 26 4
gpt4 key购买 nike

我几天前发布了这个问题,但我没有准确解释我想要什么。我再次提出更好的问题:为了澄清我的问题,我添加了一些新信息:

我有一个带有 MyISAM 表的 MySQL 数据库。两个相关的表是:

* orders_products: orders_products_id, orders_id, product_id, product_name, product_price, product_name, product_model, final_price, ...
* products: products_id, manufacturers_id, ...

(有关表格的完整信息,请参阅产品截图(Screenshot)和订单产品截图(Screenshot))

现在我想要的是:- 获取所有订购了 manufacturers_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 卡住了两次。错误在哪里?

最佳答案

SELECT 
op.orders_id,
p.products_id,
op.products_name,
op.products_price,
op.products_quantity
FROM orders_products op
INNER JOIN products p
ON op.products_id = p.products_id
WHERE p.manufacturers_id = 1 AND
p.orders_id > 10000

您在 products 表上同时进行了隐式和显式连接(请注意永远不要再使用隐式连接语法,这是一种非常糟糕的编程习惯)并且查看代码,我怀疑您正在使用交叉连接。

关于SQL 内部连接 ​​: DB stuck,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2484518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com