LEFT JOIN,Right,Full后ON和WHERE的区别

2024-11-06 09:51:11
推荐回答(1个)
回答1:

你好,LEFT JOIN,Right,Full后ON和WHERE的区别就在于:
on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录,而where条件是在临时表生成好后,再对临时表进行过滤的条件。
而且除了stu_id=1的那条记录,class表中字段不满足过滤条件的记录(即使被关联到了)全是NULL,所以on后面的语句最好只写两个表相关联的语句,并不能做单方面的过滤。
也可以这么简单的理解,以坐标为主,先查询出左表的全部记录,然后关联右表,将符合条件的记录的数据填充进查询出来的结果。
right join 和 full join 具有相同的特性,但是inner join不同,它可以在on 那里做过滤处理,也就是说放在on后面和where后面作用是一样的。
希望对你有帮助