带有 IN 子句的 MySQL 内部连接

标签 mysql inner-join

这句话优化了吗?

select d.id, d.wfid, d.docid , k.keyword, k.value from keywords k
inner join documents d 
where k.document_id in (23,24) AND k.document_id = d.id;

我通过 POST (23,24) 获得了一些 ID,我只需要获取它们的信息,因此我执行了 IN。这里是为了测试目的而硬编码的。

我知道 MySQL 会解析句子并生成更优化的句子。有没有办法得到那句话,这样我就可以避免让 mysql 一直优化它?

谢谢!

最佳答案

如果你运行这些,你会看到 MySQL 重写如何处理它们。 注意显示警告中的 SQL 并不总是有效的 SQL 语法

explain extended select d.id, d.wfid, d.docid , k.keyword, k.value from keywords k
inner join documents d 
where k.document_id in (23,24) AND k.document_id = d.id;
show warnings;

关于带有 IN 子句的 MySQL 内部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18924673/

相关文章:

mysql : issue with NOT IN query syntax

mysql - 创建数据库时,最好对每个表中的所有主键进行散列处理吗?

php - 如何在查询结果中显示多个结果?

sql - 根据列值动态决定连接表

MYSQL一对多关系查询从 'many'表返回一行

mysql - 在 SQL 中连接第三个表

python - 使用 Python3/mysqlclient 检索以 latin1 编码的数据时的字符编码问题

java - 从结果集中选择几行 mysql java

mysql - 连接查询结果显示出现问题

mysql - 在外键关系中进行内部连接时应该使用什么索引