sql - 单个查询中的 Postgresql 多个连接,其中连接的外键不存在于所有表中

标签 sql postgresql select join

是否可以在单个查询中有两个连接,其中第二个连接是 table_2 和 table_3 之间的连接(table_1 中没有键引用)?

table_1

id | column_a



table_2

id | table_1_id | table_3_id | column_b



table_3

id | column_c

现有查询:

SELECT * FROM table_1 RIGHT OUTER JOIN table_2 WHERE table_1.id id = ? and WHERE column_a = ?

从 table_1 和 table_2 给我想要的信息,但 table_2 的信息将只有 table_3_id 列。

在同一个查询中,我想加入 table_3 以根据 table_2.table_3_id 获取其数据

最佳答案

一句话——是的。您可以添加更多 join 子句:

SELECT           * 
FROM             table_1 
RIGHT OUTER JOIN table_2 ON table_1.table_2_id = table_2.id
RIGHT OUTER JOIN table_3 ON table_2.table_3_id = table_3.id
WHERE            table_1.id = ? AND column_a = ?

关于sql - 单个查询中的 Postgresql 多个连接,其中连接的外键不存在于所有表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46591666/

相关文章:

PostgreSQL PostGIS 与 ElasticSearch 空间搜索

javascript - 如何将与 <optgroup> 一起选择的 <option> 从 A 框添加到 B 框?

mysql - 从两个表中选择值

具有 Int 和 Decimal 转换的 SQL Server SUM 函数

mysql - 按行中的值多次重复结果行

sql - 如何连接表,连接一些数据

MySQL:为什么我需要一个带有 "WHERE id NOT IN(subquery1 UNION subquery 2)"的额外 SELECT

Sql 范围组开始和结束 ID

postgresql - 使用 Sqitch Rework 命令更改表

php - 如果它在行中,如何在不选择两次的情况下在 MYSQL 中选择某些内容