【发布时间】:2014-01-28 04:41:26
【问题描述】:
我正在尝试从一个表中选择在另一个表中没有对应关系的行。
为此,我目前正在使用LEFT JOIN 和WHERE joined_table.any_column IS NULL,但我认为这不是最快的方法。
SELECT * FROM main_table mt LEFT JOIN joined_table jt ON mt.foreign_id=jt.id WHERE jt.id IS NULL
此查询有效,但正如我所说,我正在寻找更快的替代方法。
【问题讨论】:
-
这就是要走的路。试试
explain select ...看看你可能需要在哪里添加索引。 -
@juergend 问题是我的实际查询要长得多,复杂得多,所以它太慢了,以至于 MySQL 服务器在 10 分钟后超时。所以我正在尝试对查询的各个部分进行优化。