mysql查询,left join(求并集),where(求交集)

准备(两张表t1,t2):

表t1:

mysql> select * from t1;

+-------+---------+

| t1_id | t1_name |

+-------+---------+

|     1 | t1_1    |

|     2 | t1_2    |

+-------+---------+

2 rows in set (0.02 sec)

表t2:

mysql> select * from t2;

+-------+---------+

| t2_id | t2_name |

+-------+---------+

|     2 | t2_2    |

|     3 | t2_3    |

+-------+---------+

2 rows in set (0.03 sec)

并集实例:

mysql> select t1.t1_id,t2.t2_id,t1.t1_name from t1 left join t2 on t1.t1_id=t2.t2_id;

+-------+-------+---------+

| t1_id | t2_id | t1_name |

+-------+-------+---------+

|     1 | NULL  | t1_1    |

|     2 |     2 | t1_2    |

+-------+-------+---------+

2 rows in set (0.02 sec)

交集实例:

mysql> select t1.t1_id,t2.t2_id,t1.t1_name from t1,t2 where t1.t1_id=t2.t2_id;

+-------+-------+---------+

| t1_id | t2_id | t1_name |

+-------+-------+---------+

|     2 |     2 | t1_2    |

+-------+-------+---------+

1 row in set (0.01 sec)

时间: 2024-10-29 03:09:33

mysql查询,left join(求并集),where(求交集)的相关文章

MySql学习(三) —— 子查询(where、from、exists) 及 连接查询(left join、right join、inner join、union join)

同样的,使用goods表来练习子查询,表结构如下: 所有数据(cat_id与category.cat_id关联): 类别表: mingoods(连接查询时作测试) 一.子查询 1.where型子查询:把内层查询的结果作为外层查询的比较条件 1.1 查询id最大的一件商品(使用排序+分页实现) :mysql> SELECT goods_id,goods_name,shop_price FROM goods ORDER BY goods_id DESC LIMIT 1; 1.2 查询id最大的一件商

MySql子查询(where、from、exists)及连接查询(left join、right join、inner join、union join)

目录 一.子查询 1.where型子查询:把内层查询的结果作为外层查询的比较条件 2.from型子查询:把内层的查询结果当成临时表,供外层sql再次查询.查询结果集可以当成表看待.临时表要使用一个别名. 3.exists型子查询:把外层sql的结果,拿到内层sql去测试,如果内层的sql成立,则该行取出.内层查询是exists后的查询. 4. any, in 子查询 子查询总结: 二.连接查询 1.全相乘(不是全连接.连接查询),全相乘是作笛卡尔积 2.左连接查询 left join ... o

delphi将两个Strlist合并,求并集

Function StrList_Merge(StrListA,StrListB:String):String; //将两个Strlist合并,求并集 var SListA,SListB,SListC:TStringList; i:Integer; begin Result := ''; Try SListA := TStringList.Create; SListB := TStringList.Create; SListC := TStringList.Create; SListA.Comm

Mysql 多表连接查询 inner join 和 outer join 的使用

JOIN的含义就如英文单词"join"一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接.这里描述先甩出一张用烂了的图,然后插入测试数据. 首先先列举本篇用到的分类(内连接,外连接,交叉连接)和连接方法(如下): A)内连接:join,inner join B)外连接:left join,left outer join,right join,right outer join,union C)交叉连接:cross join 案例表: t_users: t_departme

为什么MySQL不推荐使用子查询和join

前言: 1.对于mysql,不推荐使用子查询和join是因为本身join的效率就是硬伤,一旦数据量很大效率就很难保证,强烈推荐分别根据索引单表取数据,然后在程序里面做join,merge数据. 2.子查询就更别用了,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程. 3.如果是JOIN的话,它是走嵌套查询的.小表驱动大表,且通过索引字段进行关联.如果表记录比较少的话,还是OK的.大的话业务逻辑中可

mysql查询语句

mysql查询语句常用SELECT命令打印当前的日期和时间select now();打印当前的日期select curdate();打印当前时间select curtime();查看当前版本select version();打印当前用户select user();查看当前数据库实例select database();查看系统中可用的变量show variables;查看系统中全局变量show global variables;一般查询系统可用变量或是全局变量都是通过like的方式来进行查询的,因

mysql查询、子查询、连接查询

mysql查询.子查询.连接查询 一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count().sum()等聚合函数一起使用. having子句(筛选):有group by才能having子句,只有满足“条件表达式”中指定的条件的才能够输出. order by子句(排序):按照“属性名”指定的字段进行排序.排序方式由“asc”和“desc”两个参数指出,默

Mysql - 查询之关联查询

? 查询这块是重中之重, 关系到系统反应时间. 项目做到后期, 都是要做性能测试和性能优化的, 优化的时候, 数据库这块是一个大头. sql格式: select 列名/* from 表名 where 条件 group by 列 having 条件 order by 列 asc/desc; 这里牵涉到一个查询执行顺序的问题. 单表查询执行顺序: select sex, count(Sex) as count from tch_teacher where id > 15 group by Sex h

MySQL查询杂记

MySQL查询 杂项 1.显示当前系统时间 MariaDB [hellodb]> SELECT NOW(); +---------------------+ | NOW() | +---------------------+ | 2017-01-20 05:10:32 | +---------------------+ 2.去除重复的内容查询 只保留一样数据: MariaDB [hellodb]> SELECT DISTINCT GENDER FROM students; +--------+

MySQL查询(未完结)

MySql查询 单表查询: 查询所有字段 SELECT * FROM 表名; '*' 代表所有字段 查询指定字段 SELECT 字段名1, 字段名2 FROM 表名; 按照指定条件查询记录 1. 查询某条特定记录: SELECT * FROM 表名 WHERE 字段名 = '条件'; 2. 带 IN 关键字的条件查询: SELECT * FROM 表名 WHERE 字段名 IN ('范围'); SELECT * FROM 表名 WHERE 字段名 NOT IN ('范围'); 3. 带 BETW