首页 > 其他分享 >left join 和 where 区别

left join 和 where 区别

时间:2023-04-22 09:49:06浏览次数:39  
标签:join 条件 unique where id left

RT

https://leetcode.cn/problems/replace-employee-id-with-the-unique-identifier/solution/

select b.unique_id, a.name from Employees a left join EmployeeUNI b on a.id = b.id;
select b.unique_id, a.name from Employees a , EmployeeUNI b where a.id = b.id;

where 过滤了null

TIPS

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

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

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

标签:join,条件,unique,where,id,left
From: https://www.cnblogs.com/eat-too-much/p/17342456.html

相关文章

  • SQL JOIN的常见连接算法(转载)
    原文:https://zhuanlan.zhihu.com/p/495442432在数据库和大数据领域,通过SQL中的JOIN连接将两个及两个以上的表(或中间表、视图、物化视图)中的数据按指定的连接条件关联起来,是很常用也很方便的操作。我们前面学习了JOIN有多种常见连接方式如内连接INNERJOIN、左外连接LEFTJOIN等......
  • SQL Server Cross Join、Cross Apply和Outer Apply
    先简单了解下crossapply的语法以及会产生什么样的结果集吧!示例表:SELECT*FROMtableACROSSAPPLYtableB两张表直接连接,不需要任何的关联条件,产生的结果就是这两张表的笛卡儿集,在这里和上一篇帖子讲的crossjoin交叉连接的结果集是一样的相当于:select*fromtableA,tabl......
  • GROUP BY+join获取全部数据
     参考链接:groupby聚合分组后如何获取分组数据_group分组后返回全部数据_自己收藏学习的博客-CSDN博客SELECTr.device_id,GROUP_CONCAT(r.user_idSEPARATOR';')user_idfromrelatedasrJOINdevicesasdond.id=r.device_id#whered.group_id=1GROUPBYr.device......
  • mysql——关于join的一些知识
    1、select*fromajoinb,与select*froma,b结果是相同的,都是两张表的笛卡尔积 2、jion、innerjoin和crossjoin在innerjoin没有加on条件时,join、innerjoin和crossjoin没有区别xxx joinxxx,就等于xxxinnerjoinxxx,也等于 xxxcrossjoinxxx,得到的结果都是两......
  • Clouds remind me that magical things in life can come out of nowhere
    Cloudscanalsotransportmeawayfromthedullerpartsoflife,awayfromboringsituationsandawayfromdaytodaystressesandworries.Theygetmeoutofmyheadandintoadreamscape,amagicallookinglandscapethatfloatsabovemewhereIcanimag......
  • Java中线程的常用操作-后台线程、自定义线程工厂ThreadFactpry、join加入一个线程、线
    场景Java中Thread类的常用API以及使用示例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126596884上面讲了Thread的常用API,下面记录下线程的一些常用操作。注:博客:https://blog.csdn.net/badao_liumang_qizhi实现后台线程后台线程,是指运行时在后台提供的一......
  • inner join查询出现两个相同的列
    使用GROUPBY语句可以使用GROUPBY语句将结果集按照指定的列进行分组,并对每个分组进行聚合操作。在使用GROUPBY语句时,需要将SELECT语句中选择的列和聚合函数中的列全部包含在GROUPBY子句中。SELECTlog_id,log_user_name,user_role,log_dateFROM`back_use......
  • mysql left join 查询时主表为null统计count为0的解决方法(join后面加group by)
     如果没有加groupby则会出UserCount为0外其它都是nullselecta.*,count(b.ID)asUserCountfromerp_roleasaleftjoinerp_userasbona.ID=b.RoleIdwhere1=1anda.TenantID=2anda.RoleName='string' 加上groupby一切正常selecta.*,count(b.ID)as......
  • Mysql 中,为什么 WHERE 使用别名会报错,而 ORDER BY 不会报错?
       Mysql中,为什么WHERE使用别名会报错,而ORDERBY不会报错? 我们先对salary*12命名一个别名annual_salSELECTemployee_id,salary,salary*12annual_salFROMemployeesORDERBYannual_sal; 这段代码以annual_sal升序输出且正常执行没有报错。说明orderby......
  • 放弃where 1 = 1,使用更优雅的SQL条件拼接
    列表接口,通常会有多个条件组合查询的业务场景。映射至mapper.xml中就需要写where1=1来拼接否则就会发生select*fromtablewhereandcolumn='value'的语法错误如今的IDEA中,如果你设置了SQL方言,就会警告你where1=1始终为true建议使用<where></where>标签来处理这......