MySql语句中Union和join的用法

Union

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。 
另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

JOIN

有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。 
数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。

  • JOIN: 如果表中有至少一个匹配,则返回行(INNER JOIN 与 JOIN)
  • LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行
  • RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行
  • FULL JOIN: 只要其中一个表中存在匹配,就返回行

推荐网址:https://blog.csdn.net/weixin_41761540/article/details/80729617

原文地址:https://www.cnblogs.com/zhaomeizi/p/9929091.html

时间: 2024-10-03 13:23:02

MySql语句中Union和join的用法的相关文章

关于SQL中Union和Join的用法

转自帘卷西风的专栏(http://blog.csdn.net/ljxfblog) https://blog.csdn.net/ljxfblog/article/details/52066006 Union UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同. //联合两个表,没有重复 SELECT E_Name FROM Employ

在mysql语句中为什么要加反引号

在MySQL语句中我们有时候经常会遇到反引号(``),刚开始的时候不知道什么意思,他是什么作用呢? Select * from `member` order by posts desc limit 0,10; 它是为了区分MYSQL的保留字与普通字符而引入的符号. 举个例子:SELECT `select` FROM `test` WHERE select='字段值' 在test表中,有个select字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为

mysql语句中使用like后面的%(百分号)的问题

问题:mysql语句中使用like后面的%(百分号) 是不是越多运行效率越慢! 总用时:0.0489秒 0.0691 0.0485 0.0467 SELECT `goods_name`, `goods_img`, `sku_id`, `import` FROM `goods` WHERE `goods_name` LIKE '%iPhone%iPod%' AND `stime` < 1413877244 AND `etime` > 1413877244 ORDER BY `flag` DESC

MySql语句中select可以嵌套么,字段的重命名可以用中文么

今天文档中看到的查询语句,SELECT后面又跟了一个SELECT嵌套,而且把字段重命名为中文,请问可以这样做么 MySql语句中select可以嵌套么,字段的重命名可以用中文么 >> mysql 这个答案描述的挺清楚的:http://www.goodpm.net/postreply/mysql/1010000007432443/MySql语句中select可以嵌套么字段的重命名可以用中文么.html

MySQL语句中的转义字符

MySQL语言中的转义字符和各种编程语言基本相同,见下表 形式 含义 \0 0(NUL)字符 \n 换行 \r 回车符 \t 制表符 \b 退格 \' 单引号 \" 双引号 \\ 反斜线 \% %符(用于区分模式匹配中的%) \_ _符(用于区分模式匹配中的_) 举其中一个用的比较多的'\n'为例,执行以下SQL语句结果大家应该都知道,但是对于上面的图,大家是不是看起来有点别扭?的确,因为我们看到不仅是结果出现了换行,就连select语句中的表达式也换行了,这是因为表达式是处理之后显示的,只不过

mysql 语句中的national 、 comment

create table hms.as_othersassess(   assessid             national varchar(16) not null comment '评估编号+24位客户id+6位随机',   customerid           national varchar(13) comment '客户编号',   allergy              national varchar(500) comment '过敏史',   injury      

mysql语句中----删除表数据drop、truncate和delete的用法

程度从强到弱 1.drop  table tb drop将表格直接删除,没有办法找回 2.truncate (table) tb 删除表中的所有数据,不能与where一起使用 3.delete from tb (where) 删除表中的数据(可制定某一行) 区别:truncate和delete的区别 1.事务:truncate是不可以rollback的,但是delete是可以rollback的: 原因:truncate删除整表数据(ddl语句,隐式提交),delete是一行一行的删除,可以rol

sql语句之union与join的区别

union查询: 使用 union 可以将多个select语句的查询结果组合起来. 语法: select 字段1,字段2 from table1 union select 字段1,字段2 from table2; 例: 注意: 1.union 关键字两边的select语句的字段数量是需要一致的,并不要求字段名称一致. 例:error 1222 字段不一致 2.查询的最终结果集的字段是以第一个select语句的字段来命名. 例: 3.union自动屏蔽重复的数据 例: 但是可以添加 all 来取消

SQL 语句中union all和order by同时使用

最近做的一个财物管理系统中查询过期或逾期的存储过程,返回 “财物所属的案件名称”,“财物名称”,“财物编号”,“过期或逾期时间”(超期或逾期前7天开始预警). 遇到“union all 内不能使用 order by”的问题,百度了很久,都没有一个找到一个好的解决方案.最终还是自己实现了,记录一下. 为什么用存储过程,非得用union all 而不在程序中拼接表数据? 这个存储过程不是供我们Web程序使用的,它是提供给运行在服务器上的C/S程序调用(用来投放到机房外的LED显示屏). 因为这个C/