【发布时间】:2020-04-02 15:47:14
【问题描述】:
我的 PostgreSQL 数据库(PG 9.5,x64 Windows)中有两个表 tbl1(552 行)和 tbl2(257 行),它们的行不相等。表 tbl1 和 tbl2 包含以下数据(此处显示示例):
Grp id val1 val2 sum
1 1 112 142 5.2
1 2 124 137 6.7
1 3 136 189 6.8
1 4 112 114 9.8
1 5 130 145 6.1
1 6 142 130 7.7
Grp id sum
1 1 5.2
1 3 6.8
1 6 7.7
对于表 1 中的每个组,我尝试选择第一个表中的“id”不等于第二个表的“id”的行。例如,我的预期输出是:
Grp id val1 val2 sum
1 2 124 137 6.7
1 4 112 114 9.8
1 5 130 145 6.1
到目前为止,我已经尝试过这个查询,但它不起作用,并返回空输出。
SELECT
a.grp, a.id,
a.val1, a.val2, a.sum
FROM tbl1 a
WHERE NOT EXISTS (
SELECT *
FROM tbl2 b WHERE b.grp = a.grp AND b.id != a.id
)
有人可以帮忙解释一下我做错了什么吗?
【问题讨论】:
-
更改为
AND b.id = a.id -
想发帖作为答案吗?
标签: postgresql