美文网首页sqlSQL
MYSQL:SQL中内外连接ON AND 和ON WHERE的区

MYSQL:SQL中内外连接ON AND 和ON WHERE的区

作者: 房东家有只狗 | 来源:发表于2019-03-23 15:14 被阅读0次

    SQL中join的用法

    join关键字的作用是将多个表按一定的条件联合起来,从而可以实现从多个表中获取数据

    https://www.cnblogs.com/jiuban2391/p/6609862.html

    在使用inner join与where连接相同的情况

    A表,B表数据 where与inner join

    这两种的查询类型内容一样,不知道有什么区别?

    left join与right join的区别

    两者为什么不一样?在什么场合区分使用?更加深入,区别左右连接,内连接在on where 和on and的区别。


    sql中join与where做表连接的区别

    https://blog.csdn.net/zhaoyf7746/article/details/78044013

    MYSQL 左右表连接 ON AND 和ON WHERE 的区别

    https://blog.csdn.net/qqqqqq654/article/details/77991690

    原先一直对SQL左右连接中的on and和on where的区别不是太了解,直到在网上看到了下面这段话才豁然开朗

    在使用left join时,on and和on where条件的区别如下:

    1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。

    2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉,on后的条件用来生成左右表关联的临时表,where后的条件对临时表中的记录进行过滤。

    左右连接:(①,②)和(③,④)就是关键词on and和on where的区别,但结果却完全不同。综上三个例子,where是生成临时表以后再进行过滤,对左右表都进行筛选。而and后面的语句如果是对left join中的左表进行过滤将不起任何作用,对右表进行过滤的话,那么左表还是返回所有行,只是右表会被过滤掉一部分行。

    内连接:对比发现:(⑤,⑥)和(⑦,⑧)结果都一样,也就是说内连接inner join on and 或者on where不管是对左表还是右表进行过滤,实际都是在生成临时表以后再进行过滤的,而且对左表和右表都起作用,这与左连接left join有本质的区别!!!

    相关文章

      网友评论

        本文标题:MYSQL:SQL中内外连接ON AND 和ON WHERE的区

        本文链接:https://www.haomeiwen.com/subject/hnjsvqtx.html