我已经为9个表创建了使用INNER JOIN的SQL命令,无论如何这个命令需要很长时间(超过五分钟).因此,我的民众建议我将INNER JOIN更改为LEFT JOIN因为LEFT JOIN的表现更好,尽管我所知道的第一次.我改变后,查询的速度显着提高.
我想知道为什么LEFT JOIN比INNER JOIN快?
我的SQL命令如下所示:
SELECT * FROM A INNER JOIN B ON ... INNER JOIN C ON ... INNER JOIN D依此类推
更新: 这是我的架构的简要说明.
FROM sidisaleshdrmly a -- NOT HAVE PK AND FK
INNER JOIN sidisalesdetmly b -- THIS TABLE ALSO HAVE NO PK AND FK
ON a.CompanyCd = b.CompanyCd
AND a.SPRNo = b.SPRNo
AND a.SuffixNo = b.SuffixNo
AND a.dnno = b.dnno
INNER JOIN exFSlipDet h -- PK = CompanyCd, FSlipNo, FSlipSuffix, FSlipLine
ON a.CompanyCd …Run Code Online (Sandbox Code Playgroud) 处理来自多个表的数据时,您可以通过多种不同的方式处理JOIN这些表,每种方式都会改变处理匹配列的方式。您也可以从多个表中提取数据,即FROM [table a], [table b].
这种方法似乎仍然以某种方式连接表格,如果我不得不猜测,我会说这种方法只是 的简写FULL OUTER JOIN,但我确定两者之间存在差异。
区别只是跟FULL OUTER JOIN在 后面ON [table 1 specific column] = [table 2 specific column],还是发生了其他事情?