首页 > SQL 这个 left jion 和 left outer jion 怎么结果是一样的?

SQL 这个 left jion 和 left outer jion 怎么结果是一样的?

SELECT b.id,b.cid,b.name,t.type FROM shbooks b LEFT JOIN shtype t ON t.id = b.cid;

SELECT b.id,b.cid,b.name,t.type FROM shbooks b LEFT OUTER JOIN shtype t ON t.id = b.cid;

不加OUTER的时候,我完全能理解,把表1在表2对应的类名显示出来,

但是加上 OUTER后,我看到结果还是一模一样,用什么例子可以理解加和不加的区别呢?


这两个应该就是一样的吧。
left join是left outer join的简写。
你可以用explain extended和show warnings看到数据库优化改写之后的语句,两个SQL是一样的。


LEFT JOIN和LEFT OUTER JOIN是一样的,只是通常我们写SQL语句的是时候把OUTER给省略了。这个可以理解像内连接,我们写内连接的时候,通常也是省略INNER,直接写JOIN

多表链接有

这个有个小坑,就是不能像内连接和外连接一样,给语句加上ON,如果加了,查询结果就像内连接一样

SELECT * FROM a CROSS JOIN b where a.id=1
【热门文章】
【热门文章】