**sql语句多表关联查询语法**

一、外连接

1.左连接 left join 或 left outer join

SQL语句:select * from student left join score on student.Num=score.Stu_id;

2.右连接 right join 或 right outer join

SQL语句:select * from student right join score on student.Num=score.Stu_id;

3.完全外连接 full join 或 full outer join

SQL语句:select * from student full join score on student.Num=score.Stu_id;

通过上面这三种方法就可以把不同的表连接到一起,变成一张大表,之后的查询操作就简单一些了。

而对于select * from student,score;则尽量不使用此语句,产生的结果过于繁琐。

二、内连接

join 或 inner join

SQL语句:select * from student inner join score on student.Num=score.Stu_id;

此时的语句就相当于:select * from student,score where student.ID=course.ID;

三、交叉连接

cross join,没有where指定查询条件的子句的交叉联接将产生两表的笛卡尔积。

SQL语句:select * from student cross join score;

四、结构不同的表连接

当两表为多对多关系的时候,我们需要建立一个中间表student_score,中间表至少要有两表的主键。

SQL语句:select s.Name,C.Cname from student_score as sc left join student as s on s.Sno=sc.Sno left join score as c on c.Cno=sc.Cno

select C_name,grade from student left join score on student.Num=score.Stu_id where name=‘李五一’;
红色部分即中间表,是集合两表所有内容的一张总表。

五、UNION操作符用于合并两个或多个select语句的结果集。

UNION内部的SELECT语句必须拥有相同数量的列,每个列也必须拥有相似的数据类型,每条SELECT语句中的列的顺序必须相同。

select Num from student union select Stu_id from score;
union操作符是默认查重的,如果允许重复的值,就可以使用union all 。对于两张结构相同的表,union也可以把他们合并成一张表:

select * from student1 union select *from student2;
六、子查询

有时候,查询时需要的条件是另外一个select语句的结果,就会使用到子查询。

1.带IN关键字的子查询

SQL语句:select * from student where Num IN(select Stu_id from score);

2.带EXISTS关键字的子查询

exists内查询返回一个真价值,若返回true时,外查询进行查询,否则外查询不进行查询。

SQL语句:select * from student where exists(select * from score where C_name=‘计算机’);

3.带ANY关键字的子查询

使用ANY关键字只要有一个满足,就通过该条件来执行外查询。

SQL语句:select sname,(date_format(from_days(now())-to_days(birthday)),’%Y’)+0) as ‘年龄’ from student where birthday>ANY(select birthday from student where bumen=‘计算机系’);

4.带ALL关键字的子查询

使用ALL关键字必须满足所有的内层查询语句返回的所有结果,才执行外查询

SQL语句:select sname,(date_format(from_days(now())-to_days(birthday)),’%Y’)+0) as ‘年龄’ from student where birthday>ALL(select birthday from student where bumen=‘计算机系’);

SQL语句多表关联查询语法相关推荐

  1. SQL语句多表联合查询

    本周之前,对于数据库的使用仅限于简单的增删改查(insert.delete.updata.select),而这一周由于工作需要,对一些sql函数.sql语句多表联合查询.T-SQL语句基本语法.存储过 ...

  2. 【SQL】SQL语句多表联合查询

    SQL语句多表联合查询 CREATE TABLE orders( id int not null primary key identity(1,1), customerName varchar(100 ...

  3. Oracle - 查询语句 - 多表关联查询

    /* SQL语句的历史版本SQL89比较多 SQL92SQL99多表关联查询笛卡尔积等值关联查询非等值关联查询左外连接右外连接全外连接自连接 */ -------------------------- ...

  4. 通过图表简化sql语句的表关联

    在之前的博文中分享过一个执行了两天的一条sql语句,走了两个大表的扫描,导致执行时间很长,通过简化sql做了不小的改进,今天我们来看看还可以做些什么. 上次简化后的语句如下: with tmp_log ...

  5. SQL语言多表关联查询

    新建两张表: 表1:student  截图如下: 表2:course  截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际开发中我们不会这样建表,实际开发中这两个表会有自己不同的主键.) ...

  6. sql三个表关联查询LEFT JOIN

    SELECT 别名1.字段1,别名1.字段2,别名2.字段1,别名2.字段2,别名3.字段1,别名3.字段2 FROM 表名1AS 别名1 LEFT JOIN 表名2AS 别名2 ON 别名1.字段1 ...

  7. mysql简单的sql语句单表分组查询

    -- 按品牌分组,获取每组商品总金额 SELECT brand,SUM(price) FROM product GROUP BY brand; -- 对于金额大于4000 的商品 按品牌分组,获取每组 ...

  8. SQL 两张表关联查询

    select a.Cj_Name,a.Zz_Name,a.EQTYPE_NAME,a.Equip_GyCode, CASE WHEN a.Equip_Specialty='动设备' THEN 'M' ...

  9. 【SQL】在SQL Server中多表关联查询问题

    好久没有写SQL语句的多表连接查询,总在用框架进行持久化操作.今天写了一个多表关联查询,想根据两个字段唯一确定一条数据 失败的案例如下: SELECT cyb.id,ad.name FROM [Gen ...

最新文章

  1. java nio channel原理_Java NIO 选择器(Selector)与通道(Channel) 原理 | 学步园
  2. FPGA之道(49)DCM与PLL
  3. “智网络 · 汇安全”绿盟科技智慧安全2.0全国巡讲上海首站开讲!
  4. _Linux实操-实用指令
  5. ssh作业批改系统_如何看待「全国至少十省份叫停家长批改作业」?能否从根源解决问题?...
  6. ubuntu 目录及文件权限 000 444 666 777(转)
  7. 随机样本一致性:一种用于图像分析和自动制图的模型拟合模型(4)--(计算透视中心的三维位置)
  8. oracle rac redo log,RAC共享online redo log和archived log的官方说明
  9. Ubuntu 安装Oprofile
  10. SQL Server 函数的使用(转换函数)
  11. Java面试题总结系列 Servlet
  12. android 重新点击图标显示不出来了,android开发怎么弄成,点击图标后弹出一个消息框。主界面不显示...
  13. shiro+springmvc+mybatis【转】
  14. 干货分享:vue2.0做移动端开发用到的相关插件和经验总结
  15. 基于Java生鲜蔬菜食品商城系统详细设计和实现
  16. qlistview 自定义控件,是否可以在QListView中添加自定义窗口小部件?
  17. kali系统安装DVWA
  18. html中一级标题和二级标题,如何设置一级二级三级标题
  19. 微软商店安装包_闲着不如折腾,教你现在就尝鲜年底才发售的「微软双屏手机」...
  20. Mysql笔试+面试题积累(实时更新)

热门文章

  1. CART回归树--决策树
  2. 机械师怎么打开计算机管理,机械师电脑系统优化教程(五):关闭系统自动更新篇...
  3. 2022年旋转传送系统市场深度分析及发展研究预测报告
  4. 云服务器的数据备份和恢复
  5. 电脑切换用户后闪屏不断、不间断不受控制
  6. 常见几个方式禁止IP访问网站(PHP、Nginx、Apache不同设置方法)
  7. C语言编程经典案例——输出100~1000以内的水仙花数
  8. 计算机主机光驱弹不出来怎么办,电脑光驱弹不出来的解决方法
  9. 新浪微博账号运营小技巧,800媒体助手让你轻松成为微博达人
  10. React - Redux Hooks的使用细节详解