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

Jon*_*Jon 3 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
Run Code Online (Sandbox Code Playgroud)

现有查询:

SELECT * FROM table_1 RIGHT OUTER JOIN table_2 WHERE table_1.id id = ? and WHERE column_a = ?
Run Code Online (Sandbox Code Playgroud)

为我提供了 table_1 和 table_2 中所需的信息,但 table_2 的信息将只有 table_3_id 列。

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

Mur*_*nik 5

一句话—​​—是的。您可以添加更多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 = ?
Run Code Online (Sandbox Code Playgroud)