我有两个表A和B。B包括一列binder包含整数。现在我要搜索表A中的那些行,它们放在A.binder中。以下语句符合我的要求:

SELECT * FROM A WHERE A.binder=ANY(SELECT binder FROM B)

但我希望
SELECT * FROM A WHERE A.binder=ANY(B.binder)


SELECT * FROM A WHERE A.binder IN array_agg(B.binder)

会有用的。考虑到B.binder可能包含重复项。因此,我不能用内部连接来简化语句。

最佳答案

内部连接仍然是可能的。

SELECT A.* FROM A INNER JOIN (SELECT DISTINCT binder FROM B) AS C ON
A.binder = C.binder

为什么没有活页夹?因为这个上下文中的任何一个都需要一个子查询。

关于postgresql - Postgres是列中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37017744/

10-12 14:08