EfJoin和inner join的区别在于返回不同,数字不同,记录属性不同。内部联接:内部联接只返回两个表中联接字段相等的行;Left join:left join返回左表中的所有记录和右表中具有相等联接字段的记录。

一、左连接和内连接之间的区别

1.返回不同的

InnerJoin: InnerJoin只返回两个表中具有相同联接字段的行。

Left join:left join返回左表中的所有记录和右表中具有相等联接字段的记录。

2.不同数量

内部联接:内部联接的数量小于或等于左表和右表中的记录数量。

Left:左连接的数量与左表中的记录数量相同。

3.记录属性不同

inner join:inner join不足的记录属性将被直接丢弃。

Left:左连接不足的记录属性用NULL填充。

二、sql优化的几种常用方法

1、优化查询,要尽量避免全表扫描。首先,我们应该考虑在where和order by中涉及的列上建立索引。

2、应该避免出现在where子句中!=或lt;gt;运算符,否则,引擎将放弃索引并扫描整个表。

3、您应该尽量避免判断where子句中字段的空值,否则会导致引擎放弃使用索引并扫描整个表,例如:

从t中选择id,其中num为空

可以在num列中设置默认值0,然后按=等号查询:

从t中选择id,其中num=0

4、应尽量避免在where子句中使用or连接条件,否则会导致引擎放弃索引并扫描整个表,例如:

从t中选择id,其中num=10或num=20

该查询可以优化为:select id from t where num=10。

联合所有

从t中选择id,其中num=20