posstgresql多表连接

news2024/11/13 8:00:14

posstgresql多表连接

  • 内连接
  • 左外连接
  • 右外连接
    • 总结
  • 交叉连接
    • 九九乘法表
  • 自然连接
  • 自连接

内连接

内连接用于返回两个表中匹配的数据行,使用关键字INNER JOIN表示,也可以简写成JOIN
在这里插入图片描述

select 
-- 内连接
d.department_id ,e.first_name ,d.department_name 
from employees e 
join departments d on e.department_id =d.department_id; 
-- 内连接也可以写成如下sql
select d.department_id ,e.first_name ,d.department_name 
from employees e,departments d
where e.department_id =d.department_id ;

左外连接

左外连接返回左表中所有的数据行;对于右表,如果没有匹配的数据,显示为空值。左外连
接使用关键字 LEFT OUTER JOIN 表示,也可以简写成 LEFT JOIN
在这里插入图片描述

-- 左外连接
select 
d.department_id ,e.employee_id ,e.first_name ,d.department_name 
from employees e 
left join departments d on e.department_id =d.department_id
where d.department_id isnull ; 

表和表之间的连接条件用on,过滤条件用where

-- 查询出IT部门的信息
select 
d.department_id ,
e.employee_id ,
e.first_name ,
d.department_name 
from employees e 
left join departments d 
on e.department_id =d.department_id 
where d.department_name ='IT';

在这里插入图片描述

右外连接

select 
d.department_id ,
e.employee_id ,
e.first_name ,
d.department_name 
from employees e 
right join departments d 
on e.department_id = d.department_id 

在这里插入图片描述
右外连接返回右表中所有的数据行;对于左表,如果没有匹配的数据,显示为空值。右外连接使用关键字 RIGHT OUTER JOIN 表示,也可以简写成 RIGHT JOIN

总结

在这里插入图片描述

交叉连接

当连接查询没有指定任何连接条件时,就称为交叉连接。交叉连接使用关键字 CROSS JOIN
表示,也称为笛卡尔积(Cartesian product)。
两个表的笛卡尔积相当于一个表的所有行和另一个表的所有行两两组合,结果数量为两个表
的行数相乘
在这里插入图片描述

九九乘法表

-- generate_series:产生序列,
select concat(t1,'*',t2,'=',t1*t2)
from generate_series(1,9) t1
cross join generate_series(1,9) t2;

在这里插入图片描述

自然连接

对于连接查询,如果满足以下条件,可以使用 USING 替代 ON 子句,简化连接条件的输入:

  • 连接条件是等值连接,即 t1.col1 = t2.col1
  • 两个表中的列必须同名同类型,即 t1.col1t2.col1 的类型相同。
  • 由于 employees 表和 departments 表中的 department_id 字段名称和类型都相同,可以使用
    USING 连接查询:
select *
from employees e 
join departments d 
using(department_id);

等于

select *
from employees e 
join departments d 
on e.department_id =d.department_id ;

如果 USING 子句中包含了两个表中所有的这种同名同类型字段,可以使用更加简单的自然
连接(NATURAL JOIN)表示。例如,employees 表和 departments 表拥有 2 个同名同类型字段:
department_idmanager_id,如果基于这 2 个字段进行等值连接,可以使用自然连接:

select 
d.department_id,
d.department_name ,
e.first_name ,
e.last_name 
from employees e 
natural join departments d ;

自连接

连接(Self Join)是指连接操作符的两边都是同一个表,即把一个表和它自己进行连接。自
连接本质上并没有什么特殊之处,主要用于处理那些对自己进行了外键引用的表。
例如,员工表中的经理字段(manager_id)是一个外键列,指向了员工表自身的员工编号字
段(employee_id)。如果要显示员工姓名以及他们经理的姓名,可以通过自连接实现:

select 
e.first_name ,
e.last_name ,
m.first_name as manager_first_name,
m.last_name  as manager_last_name
from employees e 
left join employees m 
on e.manager_id = m.employee_id ;

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/909987.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

星球转债上市价格预测

星球转债 基本信息 转债名称:星球转债,评级:A,发行规模:6.2亿元。 正股名称:星球石墨,今日收盘价:29.46元,转股价格:33.12元。 当前转股价值 转债面值 / 转股…

限制 el-input 输入 emoji

1. 电脑如何输入 emoji 表情 ? 快捷键 win; 或 win. 2. 代码实现 <template><el-input v-model"input" placeholder"请输入内容" input"inputChange"></el-input> </template><script> export default {name: D…

mysql数据库root密码遗忘后,修改root密码

目录 方式一&#xff1a; 方式二&#xff1a; 2.1 也可以像我这样&#xff0c;普通用户登录进去后 2.2 执行如下命令&#xff0c;将已知的user1的加密密文更新到root中 2.3 查询数据库 2.4 用root用户登录 2.5 登录正常&#xff0c;但这会root登录进去后&#xff0c;无法…

Java中异常的详细讲解与细节讨论

用一个代码引出异常为什么要使用异常 代码&#xff1a; public static void main(Sting args[]){int n1 1;int n2 0;System.out.println(n1/n2);//这里会抛ArihmaticException,因为除数不能为0,若未用异常处理机制则程序直接结束&#xff0c;后面的代码将不执行。这样很不好…

Java【SpringBoot】SpringBoot 和 Spring 有什么区别? SpringBoot有哪些优点?

文章目录 前言一、Spring 特点二、SpringBoot 特点和优点总结 前言 各位读者好, 我是小陈, 这是我的个人主页, 希望我的专栏能够帮助到你: &#x1f4d5; JavaSE基础: 基础语法, 类和对象, 封装继承多态, 接口, 综合小练习图书管理系统等 &#x1f4d7; Java数据结构: 顺序表, …

二级MySQL(四)——数据表的增删改查

首先认识数据类型&#xff1a; VERCHAR&#xff08;n&#xff09;最长长度为n的&#xff0c;可变长度的&#xff0c;字符串类型 CHAR&#xff08;n&#xff09;固定长度的字符串类型 TIME&#xff1a;时间内类型 DTAE&#xff1a;日期类型 INT&#xff1a;普通大小的整数 …

svg图片如何渲染到页面,以及svg文件的上传

svg图片渲染到页面的几种方式 背景&#x1f7e1;require.context获取目录下的所有文件&#x1f7e1;方式1: 直接在html中渲染&#x1f7e1;方式: 发起ajax请求&#xff0c;获取SVG文件 背景 需要实现从本地目录下去获取所有的svg图标进行预览&#xff0c;将选中的图片显示在另…

合并jar包导致gradle传递依赖失效

目录 零、背景一、合并jar包1.1、自定义一组jar包1.2、自定义合并jar的任务1.3、定义打包jar的任务 二、发布jar包2.1、未合并jar包之前的合并方式2.2、合并jar包之后的合并方式 三、发现问题3.1、确定gradle中的依赖关系3.2、对比maven是否缺失依赖3.3、对比合并前后的pom.xml…

【生态经济学】利用R语言进行经济学研究技术——从数据的收集与清洗、综合建模评价、数据的分析与可视化、因果推断等方面入手

查看原文>>>如何快速掌握利用R语言进行经济学研究技术——从数据的收集与清洗、综合建模评价、数据的分析与可视化、因果推断等方面入手 近年来&#xff0c;人工智能领域已经取得突破性进展&#xff0c;对经济社会各个领域都产生了重大影响&#xff0c;结合了统计学、…

Midjourney API 国内申请及对接方式

在人工智能绘图领域&#xff0c;想必大家听说过 Midjourney 的大名吧&#xff01; Midjourney 以其出色的绘图能力在业界独树一帜。无需过多复杂的操作&#xff0c;只要简单输入绘图指令&#xff0c;这个神奇的工具就能在瞬间为我们呈现出对应的图像。无论是任何物体还是任何风…

7-10 查验身份证

分数 15 全屏浏览题目 切换布局 作者 陈越 单位 浙江大学 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c…

No mapping found for HTTP request with URI

参考: 参考地址 说明 ssm老项目,接过来别人的项目 临时建了一个Controller方便测试用的,结果访问掉不通,报: No mapping found for HTTP request with URIxxxx 这样的错误 解决办法 看了下web,xml配置 在 webmvc-config.xml 配置文件里面添加了几行配置 说明: com.iph.h…

如何使用 JavaScript Promise – 回调、异步等待和 Promise 方法解释

在本教程中,您将学习有关在 JavaScript 中使用 Promise 和 async/await 所需了解的所有内容。 那么让我们开始吧。 为什么在 JavaScript 中使用 Promise? ES6 引入了 Promise 作为原生实现。在 ES6 之前,我们使用回调来处理异步操作。 让我们了解什么是回调以及 Promise…

8.部署项目

项目地址&#xff1a;RuoYi-Cloud-Plus: 项目正式入驻 dromara 开源社区 迁移地址: https://gitee.com/dromara/RuoYi-Cloud-Plus 1.获取源码 需要有gitee账户 先把源码fork到自己的仓库中 需要多等待一段时间 勾选对应的环境 构建项目 2.sql导入 将sql导入到与sql文件名…

PHP 房产网站系统Dreamweaver开发mysql数据库web结构php编程计算机网页项目

一、源码特点 PHP 房产网站系统是一套完善的WEB设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 源码 https://download.csdn.net/download/qq_41221322/88233553 论文 https://download…

深入理解Java线程

进程、线程和协程 进程 程序由指令和数据组成&#xff0c;但程序要运行就要将指令加载进CPU以及数据加载进内存&#xff0c;并且在指令运行过程中可能还会用到磁盘、网络等设备。进程就是用来加载指令、管理内存和IO的。当一个程序被运行&#xff0c;从磁盘加载这个程序的代码…

基本定时器

1.简介 1. 基本定时器 TIM6 和 TIM7 包含一个 16 位自动重载计数器 2. 可以专门用于驱动数模转换器 (DAC), 用于触发 DAC 的同步电路 3. 16 位自动重载递增计数器 4. 16 位可编程预分频器 5. 计数器溢出时, 会触发中断/DMA请求 从上往下看 1.开始RCC供给定时器的时钟 RCC_APB1…

python解析小说

前言 在信息爆炸的时代&#xff0c;网络上充斥着大量的小说资源&#xff0c;让人们能够随时随地尽享阅读的乐趣。然而&#xff0c;有些小说网站要求用户付费才能获取完整的内容&#xff0c;这给许多人带来了困扰&#xff0c;尤其是像我这类对金钱概念模糊的人。不过&#xff0…

Android 12 源码分析 —— 应用层 二(SystemUI大体组织和启动过程)

Android 12 源码分析 —— 应用层 二&#xff08;SystemUI大体组织和启动过程&#xff09; 在前一篇文章中&#xff0c;我们介绍了SystemUI怎么使用IDE进行编辑和调试。这是分析SystemUI的最基础&#xff0c;希望读者能尽量掌握。 本篇文章&#xff0c;将会介绍SystemUI的大概…

工业类LMQ61460AASRJRR,汽车类LMQ61460AFSQRJRRQ1、LMQ61460AASQRJRRQ1 6A、降压转换器简化原理图

一、LMQ61460AASRJRR器件概述&#xff1a; LMQ61460 是一款具有集成旁路电容器的高性能直流/直流同步降压转换器。该器件具有集成式高侧和低侧MOSFET&#xff0c;能够在 3.0V 至 36V 的宽输入电压范围内提供高达 6A 的输出电流&#xff1b;可耐受 42V 电压&#xff0c;简化了输…