Postgresql 与之进行左联接的筛选器表
以下是我目前的问题:Postgresql 与之进行左联接的筛选器表,postgresql,Postgresql,以下是我目前的问题: SELECT A.* FROM A LEFT JOIN B ON B.a_id = A.id 现在,假设有一个与B直接相关的表C。我想做的是根据C筛选出表B的记录-我该怎么做?我已尝试将过滤器放置在WHERE部分: SELECT A.* FROM A LEFT JOIN B ON B.a_id = A.id LEFT JOIN C ON B.c_id = C.id WHERE C.id > 10 问题是前面的查询也会过滤掉表A的结果。如何实现我想要的结
SELECT A.*
FROM A
LEFT JOIN B ON B.a_id = A.id
现在,假设有一个与B
直接相关的表C
。我想做的是根据C
筛选出表B
的记录-我该怎么做?我已尝试将过滤器放置在WHERE部分:
SELECT A.*
FROM A
LEFT JOIN B ON B.a_id = A.id
LEFT JOIN C ON B.c_id = C.id
WHERE C.id > 10
问题是前面的查询也会过滤掉表
A
的结果。如何实现我想要的结果?您需要将该筛选器加入:
SELECT *
FROM A
LEFT JOIN
(
SELECT B.*
FROM B
INNER JOIN C ON B.c_id = C.id AND C.id > 10
) AS B ON B.a_id = A.id
它不会过滤掉A的结果 但是它也不会过滤掉B的结果。修改了ans。为此,您必须使用子查询。请向上投票并选择作为有效的ans。这将对我很有帮助。