例如,如果我有一个表"Person",其列"id"引用表"Worker"中的列"id"
这两个查询之间有什么区别?它们产生相同的结果.
SELECT *
FROM Person
JOIN Worker
ON Person.id = Worker.id;
Run Code Online (Sandbox Code Playgroud)
和
SELECT *
FROM Person,
Worker
WHERE Person.id = Worker.id;
Run Code Online (Sandbox Code Playgroud)
谢谢
我刚刚处理了一个相当复杂的查询,并且需要8秒才能运行.EXPLAIN显示了一个奇怪的表顺序,即使使用FORCE INDEX提示我的索引也没有被使用.我遇到了STRAIGHT_JOIN join关键字并开始用它替换我的一些INNER JOIN关键字.我注意到速度提升了很多.最后我用STRAIGHT_JOIN替换了所有我的INNER JOIN关键字用于此查询,它现在在.01秒内运行.
我的问题是你什么时候使用STRAIGHT_JOIN,什么时候使用INNER JOIN?如果您正在撰写好的查询,是否有任何理由不使用STRAIGHT_JOIN?