美文网首页
join关联后使用where和and条件筛选的区别

join关联后使用where和and条件筛选的区别

作者: zhengaoly | 来源:发表于2022-07-18 09:39 被阅读0次

1. inner join

在 join 和 inner join 中where和and的查询结果相同,都是取连接后的结果再进行条件筛选

select m.menu_id,m.sort_id,s.sort_id,s.sort_name from menu m join sort s on m.sort_id=s.sort_id and m.sort_id=2;
select m.menu_id,m.sort_id,s.sort_id,s.sort_name from menu m join sort s on m.sort_id=s.sort_id where m.sort_id=2;
select m.menu_id,m.sort_id,s.sort_id,s.sort_name from menu m inner join sort s on m.sort_id=s.sort_id and m.sort_id=2;
select m.menu_id,m.sort_id,s.sort_id,s.sort_name from menu m inner join sort s on m.sort_id=s.sort_id where m.sort_id=2;

以上四条sql的查询结果相同,图示结果如下:


image.png

2 left join

2.1 left join … and

在 left join 中,以左表全匹配进行连接,之后使用and筛选,不符合条件的行数据左表数据保留右表数据置为null

select m.menu_id,m.sort_id,s.sort_id,s.sort_name from menu m left join sort s on m.sort_id=s.sort_id and m.sort_id=2;

image.png

2.2 left join … where

在 left join 中,以左表全匹配进行连接,之后使用where筛选,只筛选符合条件的行数据

select m.menu_id,m.sort_id,s.sort_id,s.sort_name from menu m left join sort s on m.sort_id=s.sort_id where m.sort_id=2;

image.png

3 right join

3.1 right join … and

在 right join 中,以右表全匹配进行连接,之后使用and筛选,不符合条件的行数据右表数据保留左表数据置为null

select m.menu_id,m.sort_id,s.sort_id,s.sort_name from menu m right join sort s on m.sort_id=s.sort_id and m.sort_id=2;

image.png

3.2 right join … where

在 right join 中,以右表全匹配进行连接,之后使用where筛选,只筛选符合条件的行数据

select m.menu_id,m.sort_id,s.sort_id,s.sort_name from menu m right join sort s on m.sort_id=s.sort_id where m.sort_id=2;

image.png

相关文章

  • 23-WHERE和HAVING的区别

    一、区别一 WHERE 可以直接使用表中的字段作为筛选条件,但不能使用分组中的计算函数作为筛选条件;HAVING ...

  • 常用SQL相关

    1. where和having的区别? where和having都可以使用的场景:当筛选条件在要查询的字段中都有的...

  • mysql之条件语句

    mysql之条件语句where和having的区别。当我们需要按条件对查询结果进行筛选,就需要条件语句WHERE和...

  • SQL语法纠正

    执行顺序①from查询表②join关联表③on字段条件④where字段条件⑤group by分组字段⑥having...

  • mysql多表查询连接方式

    内连接 语法SELECT 字段列表 FROM A表 INNER JOIN B表 ON 关联条件 WHERE 等其他...

  • Mysql中having和where的区别

    having子句与where都是设定条件筛选的语句,有相似之处也有区别。 having与where的区别:havi...

  • Mysql - JOIN详解

    0 索引 JOIN语句的执行顺序INNER/LEFT/RIGHT/FULL JOIN的区别ON和WHERE的区别 ...

  • sql优化

    优化查询基础 为所有的join,where,order by和group by 中的条件简历索引 避免在条件中使用...

  • left join on and where 和 left jo

    left join on and 与 left join on where的区别 left join on and...

  • left join on 后and 和 where 的区别

    https://blog.csdn.net/ahwsk/article/details/82886732

网友评论

      本文标题:join关联后使用where和and条件筛选的区别

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