在 PostgreSQL 9.6 我有一个T这样的表
category | id | data
---------+----+------
A | 1 | foo
A | 2 | bar
A | 3 | baz
B | 4 | eh
B | 5 | whatcomesafterfoobarbaz
Run Code Online (Sandbox Code Playgroud)
有一个视图V为我提供了数据T,所以它有列category, id, data。T本质上是 的物化视图V,除了我需要以比“刷新所有内容”更多的粒度来刷新它。
所以我会选择V例如
SELECT * FROM V WHERE category = 'A';
Run Code Online (Sandbox Code Playgroud)
或者
SELECT * FROM V WHERE category = 'A' AND id = 2;
Run Code Online (Sandbox Code Playgroud)
并T用任何data V …
我有这个表结构:
id1 id2
1 2
1 3
1 4
2 1
2 5
Run Code Online (Sandbox Code Playgroud)
我需要构建一个查询来选择id2where id1is not in id2. 例如,如果id1 = 1只有id2=3和id2=4。
我试过这个:
SET @a=1;
SELECT DISTINCT x.id2
FROM tt x, tt y
WHERE x.id1=@a AND x.id1 != y.id2;
Run Code Online (Sandbox Code Playgroud)
但它不起作用。