上一篇:【MySQL必知必会(十二)】【联结表】

+++++++++++++开始线++++++++++++++++

文章目录

  • 一、 使用表别名
  • 二、 使用不同类型的联结
    • 2.1 自联结
    • 2.2 自然联结
    • 2.3 外部联结
  • 三、 使用带聚集函数的联结
  • 四、 使用联结和联结条件

一、 使用表别名

mysql> SELECT cust_name, cust_contact-> FROM customers AS c, orders AS o, orderitems AS oi-> WHERE c.cust_id = o.cust_id-> AND oi.order_num = o.order_num-> AND prod_id = 'TNT2';

表别名不仅能用于WHERE子句,还可以用于SELECT的列表、ORDER BY子句以及语句的其他部分。

表别名知在查询执行中使用。与列别名不一样,表别名不返回到客户机

二、 使用不同类型的联结

还有自联结、自然联结和外部联结

2.1 自联结

ID为DTNTR存在问题,查询生产该物品的供应商生产的其他物品是否也存在这些问题

mysql> SELECT prod_id, prod_name-> FROM products-> WHERE vend_id = (SELECT vend_id-> FROM products-> WHERE prod_id = 'DTNTR');

使用联结的相同查询

mysql> SELECT p1.prod_id, p1.prod_name-> FROM products AS p1, products AS p2-> WHERE p1.vend_id = p2.vend_id-> AND p2.prod_id = 'DTNTR';

2.2 自然联结

mysql> SELECT c.*, o.order_num, o.order_date,-> oi.prod_id, oi.quantity, OI.item_price-> FROM customers AS c, orders AS o, orderitems AS oi-> WHERE c.cust_id = o.cust_id-> AND oi.order_num = o.order_num-> AND prod_id = 'FB';

2.3 外部联结

检索所有客户及其订单(内部联结)

mysql> SELECT customers.cust_id, orders.order_num-> FROM customers INNER JOIN orders-> ON customers.cust_id = orders.cust_id;

外部联结

mysql> SELECT customers.cust_id, orders.order_num-> FROM customers LEFT OUTER JOIN orders-> ON customers.cust_id = orders.cust_id;

三、 使用带聚集函数的联结

检索所有客户及每个客户所下的订单数

mysql> SELECT customers.cust_name,-> customers.cust_id,-> COUNT(orders.order_num) AS num_ord-> FROM customers INNER JOIN orders-> ON customers.cust_id = orders.cust_id-> GROUP BY customers.cust_id;

四、 使用联结和联结条件

1.注意所使用的联结类型
2.保证所使用正确的联结条件
3.应该总是提供联结条件
4.在一个联结中可以包含多个表,甚至对于每个联结可以采用不同的联结类型

+++++++++++++结束线++++++++++++++++

下一篇:【MySQL必知必会(十四)】【组合查询】

【MySQL必知必会(十三)】【创建高级联结】相关推荐

  1. 《SQL必知必会》第十三课 创建高级联结表 使用不同类型的联结 使用带聚集函数的联结 使用联结时应注意的问题

    第十三课 创建高级联结表 #使用表别名的原因 #不同的联结类型以及每类联结所使用的语法 #如何与联结一起使用聚集函数 #使用联结时的注意问题 一.使用表别名 [1]前面(第七课)介绍使用别名引用被检索 ...

  2. mysql各种联结的区别_mysql必知必会-创建高级联结

    使用表别名 使用别名引用被检索的表列 别名除了用于列名和计算字段外,SQL还允许给表名起别名.这样做 有两个主要理由: 缩短SQL语句: 允许在单条 SELECT 语句中多次使用相同的表. 可以看到, ...

  3. 如何用mysql创建orders表_《MySQL必知必会》学习笔记

    本书所用的表: 68.png 67.png 66.png 65.png 64.png 63.png 第一章:了解SQL 数据库:保存有组织的数据的容器(通常是一个文件或一组文件). 数据库软件:DBM ...

  4. 根据SQL必知必会学习SQL(MYSQL)

    很久都没有整理SQL语句了,遇到让写SQL语句的题也很迷茫,所以就重拾一下知识,本文章根据SQL必知必会进行梳理 文章目录 一.检索所有列 1.select 1.1检索单个列 1.2 检索多个列 1. ...

  5. MySQL必知必会笔记(一)基础知识和基本操作

    第一章  了解MySQL     数据库       保存有组织的数据的容器.(通常是一个文件或一组文件) 人们经常使用数据库这个术语代替他们使用的软件.这是不正确的,确切的说,数据库软件应称为DBM ...

  6. MySQL必知必会pdf网盘下载+每章总结

    书籍下载 链接:https://pan.baidu.com/s/18g0XgavniXQzp6RlOxnwnQ 密码:j8pm 目录 书籍下载 MySQL必知必会 第二章 连接mysql 第三章 连接 ...

  7. 读书笔记系列1——MySQL必知必会

    读书笔记系列1--MySQL必知必会 文章目录 读书笔记系列1--MySQL必知必会 MySQL官方文档:https://dev.mysql.com/doc/ 第一章 数据库基础 *2021.11.2 ...

  8. 30 分钟读完《MySQL 必知必会》

    第一章 了解 SQL 介绍几个数据库的概念 数据库(database) 通过DBMS创建和操纵的保存有组织的数据的容器(通常是一个文件或一组文件). 数据库软件/数据库管理系统(DBMS)访问数据库, ...

  9. 《MySQL必知必会》学习笔记十(增删改语句使用)------掌握部分

    MySQL必知必会知识预览 第一章--了解SQL 第二章--MySQL简介 第三章--使用MySQL 第四章--检索数据 第五章--排序检索数据 第六章--过滤数据 第七章--数据过滤 第八章--用通 ...

最新文章

  1. 对AI行业未来发展的一些看法
  2. rabbitmq 启动报错 Failed to get nic info
  3. Java集合(3)--Iterator迭代器
  4. dedecms切换模板css,DEDECMS的模板的css的详细解释 -电脑资料
  5. png文件合并_程序员学习之在Python中使用PDF:阅读、旋转、合并和拆分
  6. Python开发基础 day7 迭代器
  7. 光照强度曲线图android,有关光合作用的曲线图的分析(一) - xyz的日志 - 网易博客...
  8. centos 7 下使用dvorak键盘布局
  9. 【react】 flux 的数据修改流程,类似与vuex那样,但是又有区别
  10. 二叉树的遍历-C++
  11. 【学堂在线数据挖掘:理论方法笔记】第l六天(3.31)
  12. iOS开发日记39-上传ERROR-90535,90529,90049
  13. 字体设计 css_设计好CSS字体堆栈的三个步骤
  14. android获取显示屏尺寸大小,Android 屏幕各尺寸的获取
  15. html dom onblur,html的DOM中Event对象onblur事件用法实例
  16. jetson的学习资料总结
  17. 【Gitlab】配置、运行Gitlab容器实例及简单使用测试
  18. 拼团返利模式玩法VS最新拼团的商业模式
  19. c++ toi_TOI的完整形式是什么?
  20. Windows程序设计 读书笔记(3)

热门文章

  1. [oeasy]python0097_苹果诞生_史蒂夫_乔布斯_沃兹尼亚克_apple_I
  2. 搜狐克己节目《隐秘而无穷》 称要“名利双收”
  3. [附源码]Nodejs计算机毕业设计西安凯特物流订单管理系统Express(程序+LW)
  4. vue cli配置代理解决跨域问题
  5. Python计算骰子出现的概率
  6. centos7实现磁盘挂载,解挂,开机自动挂载,解决挂载文件覆盖问题
  7. SpringBoot解决不安全的HTTP方法漏洞配置
  8. 我的世界制作服务器rj,我的世界星系mod常用工具制作方法
  9. 手把手教你搭建属于自己的PyQt5-YOLOv5目标检测平台(保姆级教程)
  10. iOS网络缓存扫盲篇 - 使用两行代码就能完成80%的缓存需求