Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL内部联接:数据库被卡住_Sql_Mysql_Join_Myisam - Fatal编程技术网

SQL内部联接:数据库被卡住

SQL内部联接:数据库被卡住,sql,mysql,join,myisam,Sql,Mysql,Join,Myisam,几天前我发了这个问题,但我没有确切解释我想要什么。 我再次提出一个更为明确的问题: 为了澄清我的问题,我添加了一些新信息: 我有一个MyISAM表的MySQL数据库。两个相关表格为: * orders_products: orders_products_id, orders_id, product_id, product_name, product_price, product_name, product_model, final_price, ... * products: products_

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

我有一个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, ...
(有关表格的完整信息,请参阅屏幕截图产品()和屏幕截图订单\产品())

现在我想要的是:-获取所有订购制造商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、 订单id>10000,用于测试,仅获得几个订单id。但是,如果这个查询能够正常工作,那么执行它需要很多时间。sql server有两次死机。错在哪里

如果没有任何索引,则select可能会生成许多表扫描

这可能是因为你得到了一个非常大的结果集,这可能会填满临时区域,这可以解释为什么会卡住

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表中既有隐式连接,也有显式连接(请注意,不要再使用隐式连接语法,这是一种非常糟糕的编程实践),看代码,我怀疑您得到的是交叉连接。

对于不了解该工具的任何人来说,小小的彩色菱形毫无意义。确切的DDL语句最好显示出来。非常感谢。就这样