首页 > 数据库 >SQL刷题 力扣

SQL刷题 力扣

时间:2022-11-07 18:01:11浏览次数:35  
标签:table2 table1 join column 力扣 SQL left select 刷题

力扣584.寻找用户推荐人:

select name from customer where referee_id!=2 or referee_id is not NULL;

null值无法与确定的值作比较,用 is NULL 或者 is not NULL 判断

 

力扣175.组合两个表:

select firstName,lastName,city,state from Person left join Address on Person.personId=Address.personId;

join on 用来连接表,如果想保留左表的所有内容就用left join,右表的内容用right join

where 单独使用类似于inner join

join/inner join(内连接):两表中至少存在一个匹配时,返回匹配项两表合并的内容。
select column  from table1 inner join table2 on table1.column=table2.column

left join(左连接):以左表关键字为基准,返回两表合并后的所有行。若右表无匹配项标为null。
select column  from table1 left join table2 on table1.column=table2.column

right join(右连接):以右表关键字为基准,返回两表合并后的所有行。若左表无匹配项标为null。
select column  from table1 right join table2 on table1.column=table2.column

full join(全连接):返回两表合并后的所有行。若左表或右表无匹配项标为null。
select column  from table1 full join table2 on table1.column=table2.column

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下:

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

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

 

标签:table2,table1,join,column,力扣,SQL,left,select,刷题
From: https://www.cnblogs.com/cjhtxdy/p/16866579.html

相关文章

  • Python获取MySQL的创建表sql到文件中
    importosimportpymysqlpath=r'D:\Projects\sql'ifnotos.path.isdir(path):os.mkdir(path)conn=pymysql.connect(host='192.168.1.17',user='root',......
  • Flask-SQLAlchemy
    认识Flask-SQLAlchemyFlask-SQLAlchemy是一个为Flask应用增加SQLAlchemy支持的扩展。它致力于简化在Flask中SQLAlchemy的使用。SQLAlchemy是目前python中最......
  • MySQL_流程控制_分支结构
    1If结构功能:实现简单的双分支语法:IF(表达式1,表达式2,表达式3)执行顺序:如果表达式1成立,则IF函数返回表达式2的值,否则返回表达式3的值应用:任何地方 2case结构情况1......
  • 在MAC上安装mysql
    安装Mysql使用可视化界面安装方式。1、登录Mysql的官网,mysql下载的官网2、下载“社区版的Mysql”,点击下图的MysqlCommunity(GPL)Downloads。 3、然后选择MysqlCom......
  • MySQL_流程控制_循环结构
    分类WHILELOOPREPEAT 循环控制:Iterate类似于continue,继续,结束本次循环,继续下一次Leave类似于break,跳出,结束当前所在的循环 1WHILE语法【标签:】WHILE循环条......
  • mysql 基础之连接器
    连接器如果你在Linux操作系统里要使用MySQL,那你第一步肯定是要先连接MySQL服务,然后才能执行SQL语句连接的过程需要先经过TCP三次握手,因为MySQL是基于TCP协......
  • MySQL_存储过程_和函数
    存储过程和函数:类似于Java中的方法 好处:1提高代码的重用性2简化操作3减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率 存储过程含义一组预先......
  • MySQL_视图
    含义:(MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果)......
  • MySQL_事务_回滚
    Savepoint保存点;设置保存点SETautocommit=0;STARTTRANSACTION;DELETEFROMaccountWHEREid=25;SAVEPOINTa;#设置保存点DELETEFROMaccountWHEREid=28......
  • MySQL_变量_系统变量
    说明:变量有系统提供,不是用户定义,属于服务器层面使用的语法:1查看所有的系统变量SHOWGLOBAL|【SESSION】VARIABLES;2查看满足条件的部分系统变量      SH......