sql - 子查询的自连接

标签 sql postgresql

我想知道,是否可以使用 PostgreSQL 将查询结果与自身连接起来?

最佳答案

您可以使用 WITH 这样做:

WITH subquery AS(
    SELECT * FROM TheTable
) 
SELECT *
FROM subquery q1
JOIN subquery q2 on ...

或者通过创建一个包含查询的 VIEW,并在其上加入:

SELECT *
FROM TheView v1
JOIN TheView v2 on ...

或者暴力方法:键入子查询两次:

SELECT *
FROM (
    SELECT * FROM TheTable
) sub1
LEFT JOIN (
    SELECT * FROM TheTable
) sub2 ON ...

关于sql - 子查询的自连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/907366/

相关文章:

node.js - 使用 Sequelize 和 Postgres 发送 POST 请求后,为什么我的外键列返回两次?

sql - 如何为 sql select 生成序列号,为后代项目提供子编号?

python - mysql 未连接到数据库

sql - SQL SELECT 中的 bool 逻辑

sql - 使用 USING 关键字执行 JOIN 时,选择列表中不能有限定符

sql - postgres : select rows where a parameter is anything

sql - Sql server 2008R2查询日期时间的方法

java - Android sqlite数据库报错SQLiteException no such column

python - 测试 Postgres-DB 的连接

python - Sqlalchemy 如何切片字符串并将其转换为 int 然后检查它是否大于数字?