Home > Database > Mysql Tutorial > mysql中LEFT JOIN查询两个表的差集

mysql中LEFT JOIN查询两个表的差集

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-07 16:18:55
Original
2324 people have browsed it

今天在做一个微信墙的抽奖程序的时候遇到了一个问题,我需要查询量表的差集,业务情形是这样的 一个表用来保存抽奖用户的( 一个人可能会有多条数据),而另一张表保存的是中奖的用户,我需要报么有中奖的所用用户查找出来,刚开始用的是where进行多表关联查询

   今天在做一个微信墙的抽奖程序的时候遇到了一个问题,我需要查询量表的差集,业务情形是这样的

  一个表用来保存抽奖用户的( 一个人可能会有多条数据),而另一张表保存的是中奖的用户,我需要报么有中奖的所用用户查找出来,刚开始用的是where进行多表关联查询,但是最终发现当中奖表中么有数据的时候是查找不到任何信息的,改用LEFT JOIN 用这个就很简单了,

 代码如下  

DESC SELECT * 
FROM  `enet_wall_list` AS l
LEFT JOIN  `enet_wall_lottery` AS lottery ON l.openid = lottery.openid
WHERE l.weid =63
AND lottery.id IS NULL 
GROUP BY l.openid

  左连接查询,查找相等的,如果没有的lottery表中会用NULL字段直接判断下就可以过滤一下数据了,然后得到需要的数据即可 。

  例子

  环境:A/B 两表为关联表。关联字段,pid。A表为主表,数据多于B表。现查询A表中存在,B表中不存在的数据

 代码如下  

SELECT * FROM `A` a LEFT JOIN  `B`  b  ON a.`pid`=b.`pid` where b.`pid` IS NULL and LENGTH(a.`pid`)

  讲述下以上SQL所用到的知识:

  1、LEFT JOIN ON : left join 左边的表为主表,主表中的每条数据都会显示。右边的表中如果没有数据,,则表示为null

  2、LENGTH 计算字符串的长度

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
MySQL stops process
From 1970-01-01 08:00:00
0
0
0
Error when installing mysql on linux
From 1970-01-01 08:00:00
0
0
0
Mysql cannot start
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template