mysql - 连接 3 个表,查询无响应

标签 mysql sql

我在尝试连接 3 个表时遇到问题,每次我在我的服务器上运行查询时,我都会遇到一个巨大的暂停,需要手动终止。

这是表格结构

books   : isbn(PK)
books_a : id(PK), isbn, price, condition
books_l : id(PK), isbn, price, condition

这里是查询

SELECT 
   b.isbn, 
   a.price       AS a_price, 
   a.condition   AS a_condition, 
   l.price       AS l_price, 
   l.condition   AS l_condition 

FROM 
   books b  

   LEFT JOIN a_books a ON b.isbn  = a.isbn 
   LEFT JOIN l_books l ON b.isbn  = l.isbn

我的查询可能有什么问题? (注意我在每个表中确实有超过 6,000 条记录)

最佳答案

我敢打赌这些列中的一个或某些列没有被索引。 a_books.isbnbooks.isbnl_books.isbn

尝试运行这个语句,

ALTER table a_books ADD INDEX IDX_abk (isbn);
ALTER table books ADD INDEX IDX_bk (isbn);
ALTER table l_books ADD INDEX IDX_lbk (isbn);

Read this article: How does database indexing work?

关于mysql - 连接 3 个表,查询无响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12614929/

相关文章:

php - MySQL 语句同时使用 JOIN、ON 和 WHERE 不起作用

SQL:从连接中收集右手值

SQL 子查询获取特定列

javascript - 如何将mysql查询转换为sequelize

MYSQL 双值舍入查询

php - 你如何为每个表格行递增一个数字?

php - 如何将数组添加到嵌套数组

php - PHP/MySQL 中的多词搜索

mysql - 查询不包括表达式作为聚合函数的一部分

php - 如果输出在数据库中存在多次,则不会显示