PostgreSQL入门到实战-第二十二弹

PostgreSQL中表连接操作(六)

使用PostgreSQL自联接技术来比较同一表中的行

官网地址

声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准

https://www.postgresql.org/

PostgreSQL概述

PostgreSQL: 世界上最先进的开源关系数据库。

PostgreSQL中self-join命令理论

  • 自联接是将表联接到自身的常规联接。在实践中,通常使用自联接来查询分层数据或比较同一表中的行。

  • 基础语法

    SELECT select_list
    FROM table_name t1
    INNER JOIN table_name t2 ON join_predicate;
    SELECT select_list
    FROM table_name t1
    LEFT JOIN table_name t2 ON join_predicate;
    

PostgreSQL中self-join命令实战

数据库样例数据来源: https://blog.csdn.net/zwq56693/article/details/137473602

  • 以下语句创建employee表,并在表中插入一些示例数据。

    CREATE TABLE employee (
      employee_id INT PRIMARY KEY, 
      first_name VARCHAR (255) NOT NULL, 
      last_name VARCHAR (255) NOT NULL, 
      manager_id INT, 
      FOREIGN KEY (manager_id) REFERENCES employee (employee_id) ON DELETE CASCADE
    );
    INSERT INTO employee (employee_id, first_name, last_name, manager_id) 
    VALUES 
      (1, 'Windy', 'Hays', NULL), 
      (2, 'Ava', 'Christensen', 1), 
      (3, 'Hassan', 'Conner', 1), 
      (4, 'Anna', 'Reeves', 2), 
      (5, 'Sau', 'Norman', 2), 
      (6, 'Kelsie', 'Hays', 3), 
      (7, 'Tory', 'Goff', 3), 
      (8, 'Salley', 'Lester', 3);
    
    SELECT * FROM employee;
    

在这里插入图片描述

  • 查询使用自联接来查找谁向谁报告
SELECT 
  e.first_name || ' ' || e.last_name employee, 
  m.first_name || ' ' || m.last_name manager 
FROM 
  employee e 
  INNER JOIN employee m ON m.employee_id = e.manager_id 
ORDER BY 
  manager;

在这里插入图片描述

  • 的查询找到具有相同长度的所有成对的电影

    SELECT 
      f1.title, 
      f2.title, 
      f1.length 
    FROM 
      film f1 
      INNER JOIN film f2 ON f1.film_id > f2.film_id 
      AND f1.length = f2.length;
    

在这里插入图片描述

更新计划

欲知后事如何, 请听下回分解

  • 25
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值