MySql - 连接 - 连接同一个表两次

标签 mysql sql join

当有大量记录时,我们如何才能更有效地实现这一目标?

SELECT M.t1, M.t2,A.x2,B.x2
FROM M
JOIN  P as A ON A.x1 = M.t1
JOIN P as B ON B.x1 = M.t2;

请注意,索引已应用于 M.t1 和 M.t2。

最佳答案

如果您有“大量”记录,那么您的查询可能会返回“大量”记录,甚至更多记录。您所能做的就是添加索引。

对于此查询,我建议在 P(x1, x2) 上建立索引。您可能还会发现 M(t1) 上的索引有效 - 只是因为不需要读取原始数据页,只需读取索引。

关于MySql - 连接 - 连接同一个表两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54958565/

相关文章:

java - 多对多关联无法与级联属性一起正常工作

sql - 当 deleteOldRevisions 内存不足时如何删除旧的 MediaWiki 修订版

sql - 通过另一个表组合两个表

mysql - SQL不同条件多选

mysql - oracle 相当于 mysql ifnull(没有大小写,没有 if)

mysql - SQL 多行计数

mysql - SQL 中的自然排序不起作用

mysql - 如何在mysql中搜索json数据?

string - 拆分字符串并替换 Lua 中的点字符

php - 添加到脚本 echo file_get_contents(myfile.php) 后,脚本 myfile.php 的某些部分将不起作用。知道为什么吗?