mysql快速精通(四)多表查询

news/2024/9/11 3:35:02/ 标签: mysql, sql, 数据库

主打一个实用

一. 连接查询

  1. 交叉连接

    交叉连接返回两个表的笛卡尔积,即每个表的每一行与另一个表的每一行组合

    语法:

    sql">SELECT *FROM table1 CROSS JOIN table2;
    
  2. 内连接

    查询两张表都存在的数据,即排除两张表的未匹配部分

    语法:

    sql">SELECT 字段名 FROM 左表 INNER JOIN 右表 ON 条件;
    
  3. 外连接

    a. 左外连接

    保留左表部分(包括其未匹配部分),可以通过加上右表对应字段等于空的条件排除交集部分

    语法:

    sql"> SELECT 字段名 FROM 左表 LEFT OUTER JOIN 右表 ON 条件
    

    b. 右外连接

    保留右表部分(包括其未匹配部分),可以通过加上左表对应字段等于空的条件排除交集部分

    语法:

    sql"> SELECT 字段名 FROM 左表 RIGHT OUTER JOIN 右表 ON 条件
    
  4. 自连接

自连接算是外连接的一种特殊情况,这里单独提出来,所用语法与交叉连接相似

自连接是指连接同一个表的两个不同实例,用于在同一个表中比较不同行之间的数据,例如我需要查询表中工资为平均值的员工姓名,由于在where里面不能使用聚合函数,所以无法通过单表实现,但可以借助自连接实现

sql">SELECT columns
FROM table1 AS alias1
JOIN table1 AS alias2 ON alias1.column = alias2.column;
  1. 全外连接

保留两表所有行,在sql>mysql里面需要用UNION实现,UNION会取并集并去除,所以可以直接将左连接与右连接并起来

语法:

sql">SELECT columns
FROM table1
LEFT JOIN table2 ON table1.column = table2.column
UNION
SELECT columns
FROM table1
RIGHT JOIN table2 ON table1.column = table2.column

二. 子查询

  1. 单行子查询

使用单行运算符的子查询,"= > >= < <= != "

举例:

sql">select * from emp where salary>(select salary from emp where name='眨眼睛')
  1. 多行子查询

同理,“in、any、all”

举例

sql"># 查询工资高于5000的员工(使用in)
SELECT dept.name FROM dept WHERE dept.id IN (SELECT dept_id FROM emp WHERE salary > 5000)# 查询工资在眨眼睛以上的所有员工(使用any)
select name,salary from emp where salary >=any(select salary from emp where name='眨眼睛')# 查询工资比眨眼睛高的所有员工(使用all)
select name,salary from emp where salary >all(select salary from emp where name='眨眼睛')
  1. 多列子查询
sql"># 查询部门在纽约并且入职时间在xxx时间以后的员工信息
SELECT emp.id AS emp_id,emp.name AS emp_name,emp.salary AS emp_salary,dept.id AS dept_id,dept.name AS dept_name
FROM employees emp,(SELECT * FROM departments WHERE location = 'New York') AS dept
WHERE emp.department_id = dept.idAND emp.join_date > '2011-01-01';

http://www.ppmy.cn/news/1475222.html

相关文章

【ceph】ceph集群-添加/删除mon

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》&#xff1a;python零基础入门学习 《python运维脚本》&#xff1a; python运维脚本实践 《shell》&#xff1a;shell学习 《terraform》持续更新中&#xff1a;terraform_Aws学习零基础入门到最佳实战 《k8…

Python-数据爬取(爬虫)

~~~理性爬取~~~ 杜绝从入门到入狱 1.简要描述一下Python爬虫的工作原理&#xff0c;并介绍几个常用的Python爬虫库。 Python爬虫的工作原理 发送请求&#xff1a;爬虫向目标网站发送HTTP请求&#xff0c;通常使用GET请求来获取网页内容。解析响应&#xff1a;接收并解析HTTP响…

力扣第230题“二叉搜索树中第K小的元素”

在本篇文章中&#xff0c;我们将详细解读力扣第230题“二叉搜索树中第K小的元素”。通过学习本篇文章&#xff0c;读者将掌握如何使用中序遍历来找到二叉搜索树中的第K小的元素&#xff0c;并了解相关的复杂度分析和模拟面试问答。每种方法都将配以详细的解释&#xff0c;以便于…

PostgreSQL 怎样处理数据仓库中维度表和事实表的关联性能?

文章目录 PostgreSQL 中维度表和事实表关联性能的处理 PostgreSQL 中维度表和事实表关联性能的处理 在数据仓库的领域中&#xff0c;PostgreSQL 作为一款强大的关系型数据库管理系统&#xff0c;对于处理维度表和事实表的关联性能是一个关键的问题。维度表和事实表的关联是数据…

2024最新最全面的软件测试自动化面试题(含答案)

1.如何把自动化测试在公司中实施并推广起来的&#xff1f; 选择长期的有稳定模块的项目 项目组调研选择自动化工具并开会演示demo案例&#xff0c;我们主要是演示selenium和robot framework两种。 搭建自动化测试框架&#xff0c;在项目中逐步开展自动化。 把该项目的自动化…

paddla模型转gguf

在使用ollama配置本地模型时&#xff0c;只支持gguf格式的模型&#xff0c;所以我们首先需要把自己的模型转化为bin格式&#xff0c;本文为paddle&#xff0c;onnx&#xff0c;pytorch格式的模型提供说明&#xff0c;safetensors格式比较简单请参考官方文档&#xff0c;或其它教…

决策树构建精要:算法步骤与实现细节

决策树构建&#xff1a;算法流程与步骤 决策树是一种强大的机器学习算法&#xff0c;用于分类和回归问题。下面将详细介绍决策树的构建流程和具体步骤&#xff0c;帮助您理解并实现决策树算法。 1. 算法流程 决策树的构建流程可以概括为以下几个主要步骤&#xff1a; 特征选…

Apache-Flink未授权访问高危漏洞修复

漏洞等级 高危漏洞!!! 一、漏洞描述 攻击者没有获取到登录权限或未授权的情况下,或者不需要输入密码,即可通过直接输入网站控制台主页面地址,或者不允许查看的链接便可进行访问,同时进行操作。 二、修复建议 根据业务/系统具体情况,结合如下建议做出具体选择: 配…

OpenGL笔记一之基础窗体搭建以及事件响应

OpenGL笔记一之基础窗体搭建以及事件响应 总结自bilibili赵新政老师的教程 code review! 文章目录 OpenGL笔记一之基础窗体搭建以及事件响应1.运行2.目录结构3.main.cpp4.CMakeList.txt 1.运行 2.目录结构 01_GLFW_WINDOW/ ├── CMakeLists.txt ├── glad.c ├── main…

Web3 社交领域的开发技术

Web3 社交领域的开发技术主要包括以下几种&#xff0c;随着 Web3 技术的不断发展&#xff0c;Web3 社交领域将会出现更多新的技术和应用场景。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1. 区块链技术 区块链技术是 Web3 社交的…

探索邻近奥秘:SKlearn中K-近邻(KNN)算法的应用

探索邻近奥秘&#xff1a;SKlearn中K-近邻&#xff08;KNN&#xff09;算法的应用 在机器学习的世界里&#xff0c;K-近邻&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;算法以其简单直观而著称。KNN是一种基本的分类和回归方法&#xff0c;它的工作原理非常…

ElasticSearch 深度分页详解

原文链接&#xff1a;https://zhuanlan.zhihu.com/p/667036768 1 前言 ElasticSearch 是一个实时的分布式搜索与分析引擎&#xff0c;常用于大量非结构化数据的存储和快速检索场景&#xff0c;具有很强的扩展性。纵使其有诸多优点&#xff0c;在搜索领域远超关系型数据库&…

【人工智能】-- 迁移学习

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a; 专业知识 文章目录 &#x1f349;引言 &#x1f349;迁移学习 &#x1f348;基本概念 &#x1f34d;定义 &#x1f34c;归纳迁移学习&#xff08;Induct…

LeetCode HOT100(四)字串

和为 K 的子数组&#xff08;mid&#xff09; 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2 解法1&#xff1a;前缀和Map 这…

租用海外服务器需要考虑哪些因素

当企业选择租用海外服务器时需要考虑到哪些因素呢&#xff1f; 对于海外服务器的租用我们需要考虑到机房的位置以及服务器的稳定性如何&#xff0c;所以企业可以选择离目标用户群体比较近一点的机房&#xff0c;以此来降低服务器的延迟度并且能够提高用户的访问速度。 对于机房…

WEB07Vue+Ajax

1. Vue概述 Vue&#xff08;读音 /vjuː/, 类似于 view&#xff09;&#xff0c;是一款用于构建用户界面的渐进式的JavaScript框架&#xff08;官方网站&#xff1a;https://cn.vuejs.org&#xff09;。 在上面的这句话中呢&#xff0c;出现了三个词&#xff0c;分别是&#x…

Memcached负载均衡:揭秘高效缓存分发策略

标题&#xff1a;Memcached负载均衡&#xff1a;揭秘高效缓存分发策略 在分布式缓存系统中&#xff0c;Memcached通过负载均衡技术来提高缓存效率和系统吞吐量。负载均衡确保了缓存请求能够均匀地分配到多个缓存节点上&#xff0c;从而防止任何一个节点过载。本文将深入探讨Me…

对话大模型Prompt是否需要礼貌点?

大模型相关目录 大模型&#xff0c;包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步&#xff0c;扬帆起航。 基于Dify的QA数据集构建&#xff08;附代码&#xff09;Qwen-2-7B和GLM-4-9B&#x…

6-6 Ant.design配置(react+区块链实战)

6-6 Ant.design配置&#xff08;react区块链实战&#xff09; https://ant.design/index-cn 直接点击开始使用ant进行button等按钮的样式 https://ant.design/docs/react/use-with-create-react-app-cn 在 create-react-app 中使用 安装antd&#xff0c;在react项目woniu-pet-…