问题说明:
图片审核功能:要求mac与图片绑定, 图片状态需要审核,管理员修改图片状态,现在要求同时显示绑定信息与图片状态

有两种表格:

一张是mac-图片绑定表格mac_config ,包含文件名,所属用户信息
filename, email

一张是图片状态表格files ,包含审核状态
filename,status

现在有个查询, 需要返回 mac-图片绑定表格,并且包含图片的审核状态:

使用联合查询:

select m.filename,m.email,f.status
from mac_config as m left join files as f
on m.filename = f.filename;

执行查询后,返回的表格如下, 可以看到表格中多了一个status的字段:

join查询不会产生临时表,所以这张所谓的新表是不存在的,节省性能。

本次查询使用了left join,保留了左边完整表格

各种连接:


-- 交叉连接 不带where,相当于笛卡尔积
select *
from course cross join teacher;-- 交叉连接 带where
select *
from course as c cross join teacher as t
where c.教师号 = t.教师号;-- 内连接,交集部分 inner可省略
select s.学号,姓名,课程号
from student as s inner join score as s1
on s.学号 = s1.学号;-- 左连接,保留左表全记录
select s.学号,姓名,课程号
from student as s left join score as s1
on s.学号 = s1.学号;-- 右连接,保留右表全记录
select 课程号,课程名称,教师名称,t.教师号
from course as c right join teacher as t
on c.教师号 = t.教师号;-- 左外连接,保留只在左表有的记录
select s.学号,姓名,课程号
from student as s left join score as s1
on s.学号 = s1.学号
where s1.学号 is null;-- 右外连接,保留只在右表有的记录
select 课程号,课程名称,教师名称,t.教师号
from course as c right join teacher as t
on c.教师号 = t.教师号
where c.教师号 is null;/* 全连接,MySQL不支持全连接 full outer join 但oracle支持可以借助union合并两表左连接和右连接结果集实现
*/
select 课程号,课程名称,教师名称,t.教师号
from course2 as c left join teacher as t
on c.教师号 = t.教师号
union
select 课程号,课程名称,教师名称,t.教师号
from course2 as c right join teacher as t
on c.教师号 = t.教师号;-- 全外连接(mysql也不支持),A、B除去相交部分的集合
select 课程号,课程名称,教师名称,t.教师号
from course2 as c left join teacher as t
on c.教师号 = t.教师号
where t.教师号 is null
union
select 课程号,课程名称,教师名称,t.教师号
from course2 as c right join teacher as t
on c.教师号 = t.教师号
where c.教师号 is null;-- 查询所有学生的学号、姓名、选课数、总成绩
select s1.学号,姓名,count(课程号) as 选课数,sum(成绩) as 总成绩
from student as s1
left join score as s2 on s1.学号 = s2.学号
group by s1.学号;-- 查询平均成绩大于85的所有学生的学号、姓名和平均成绩
select s1.学号,姓名,avg(成绩) as 平均成绩
from student as s1
left join score as s2 on s1.学号 = s2.学号
group by s1.学号
having 平均成绩 > 85;-- 查询学生的选课情况:学号,姓名,课程号,课程名称
select s1.学号,姓名,s2.课程号,课程名称
from student as s1
join score as s2 on s1.学号 = s2.学号
join course as c on s2.课程号 = c.课程号;

另外还有一个多表查询关键字UNION,当由于有大量的数据,导致一个表被切分为多个表后,使用UNION查询
如:

select student,学号 from class1
union
select student,学号 from class2

联合查询去重复: 使用GROUP BY

SELECT f.*FROM files as f right join mac_config as mon m.filename = f.filenameWHERE f.filename<>'null'GROUP BY m.filenameORDER BY create_time DESC

另外还有union all关键字
union和union all的区别:union会进行数据的排序和去重,查询效率较低;union all没有进行排序和去重,查询效率较高。

SQL联合查询 join相关推荐

  1. SQL联合查询:子表任一记录与主表联合查询

    今天有网友群里提了这样一个关于SQL联合查询的需求: 一.有热心网友的方案: 二.我的方案: select * from ( select a.*,(select top 1 Id from B as ...

  2. mysql的内联与左联,SQL联合查询(内联、左联、右联、全联)的语法

    SQL联合查询(内联.左联.右联.全联)的语法以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 概述 联合查询效率较高 举 ...

  3. sql联合查询网页java,求帮助,这个SQL联合查询如何写~

    求帮助,这个SQL联合查询怎么写~~~~~~~~~~~~~ 本帖最后由 xzs7190966 于 2013-01-08 16:56:27 编辑 项目表 用户表 项目表里的第2,3,4列里的id都是对应 ...

  4. SQL联合查询(内联、左联、右联、全联)的语法

    概述:# 联合查询效率较高,举例子来说明联合查询:内联inner join .左联left outer join .右联right outer join .全联full outer join 的好处及 ...

  5. sql联合查询(内联、左联、右联、全联)

    继上篇<sql内联查询> 引言 上篇谈到了sql内联查询是联合查询的一种,接下里这篇博客就介绍一下其它的查询方法,分别为左联.右联.全联. 还是用上篇博客提到的例子: select * f ...

  6. SQL联合查询中的关键语法

    http://www.cnblogs.com/aaapeng/archive/2010/01/20/1652151.html 联合查询效率较高.以下例子来说明联合查询的好处 t1表结构(用户名,密码) ...

  7. EF 表联合查询 join

    有两张表m_Dept.m_User,联合查询 linq方式.EF方式 private void Add(){List<m_Dept> lst = new List<m_Dept> ...

  8. SQL联合查询及SQL语句中日期格式的转换

    SQL 三表联合查询用法 及 如何将日期数据的格式进行转换 1.1 SQL三表联合查询 如下三张表 表1–TableName1 NAME AGE amy 18 表B-TableName2 NAME I ...

  9. SQL联合查询--理论知识

    需要知道的知识点: ORDER BY函数 concat_ws函数 group_concat函数 MySQL模糊查询 SQL注入中的显示位 SQL注入必记的一库三表 mysql的基本命令 注入的步骤: ...

最新文章

  1. androidannotations
  2. mysql重连,连接丢失:The last packet successfully received from the server--转载
  3. Python 计算机视觉(十)—— OpenCV 图像锐化及边缘检测
  4. uploadhandler.php,多个WordPress主题’upload-handler.php’任意文件上传漏洞
  5. 3分钟学会Linux管道符与重定向
  6. SpringBoot 配置环境属性
  7. ABAP 中的变量和常量
  8. Windows下PHP多线程扩展pthreads的安装
  9. vue-wechat-title
  10. Redis有哪几种数据淘汰策略?
  11. 重装系统后只有C盘,怎么处理?
  12. 春天的旁边_春天@PropertySource
  13. 微型计算机普遍采用的数字编码是,计算机原理复习题1
  14. Cognos常见错误解决办法
  15. 如何在IDEA中导出jar包
  16. JAVA基础语法:java编程规范和常用数据类型
  17. 怎么看python帮助手册常见问题商家认证_问题:使用help命令可以查看python模块的帮助文档。...
  18. 简单学习HTML图片轮播(初学)
  19. 预告 | 互联网人吐槽大会系列漫画 要来啦~
  20. 苹果手机无线网显示无网络连接到服务器,iPhone提示:“无线局域网似乎未接入互联网”,咋回事?...

热门文章

  1. mysql 5.7的my.ini的位置在隐藏文件夹“ProgramData”下面
  2. 计算机基础知识(基础入门小白专属)二
  3. 正则表达式中,表示匹配非数字字符的字符
  4. 一个匹配数字的正则表达式(带详细解释)
  5. 某app登录协议逆向分析
  6. 如何解决ARP欺骗攻击
  7. http chunked问题记录
  8. 使用WireShark查看TCP的三次握手
  9. 精彩回顾 | 客户体验官俱乐部(CEOC)首届主题论坛在深圳圆满落幕
  10. php标签打印机,PHP连接打印机