PostgreSQL入门到实战
- PostgreSQL中表连接操作(六)
- 官网地址
- PostgreSQL概述
- PostgreSQL中self-join命令理论
- PostgreSQL中self-join命令实战
- 更新计划
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;
更新计划
欲知后事如何, 请听下回分解