在PostgreSQL中使用EXCEPT子句
我正在尝试使用该EXCEPT
子句从表中检索数据。我想从中获取table1
除存在的行以外的所有行table2
。据我了解,以下内容不起作用:
CREATE TABLE table1(pk_id int, fk_id_tbl2 int);CREATE TABLE table2(pk_id int);
Select fk_id_tbl2
FROM table1
Except
Select pk_id
FROM table2
我可以使用的唯一方法EXCEPT
似乎是从相同的表中选择,或者从不同的表中选择具有相同列名的列。
有人可以解释一下如何最好地使用解释子句吗?
回答:
您的查询似乎完全有效:
SELECT fk_id_tbl2 AS some_nameFROM table1
EXCEPT -- you may want to use EXCEPT ALL
SELECT pk_id
FROM table2;
列 与查询无关。只有
必须匹配。您的查询的输出列名称为fk_id_tbl2
,仅因为它是first中的列名称SELECT
。您可以使用任何别名。
经常被忽略的是:(EXCEPT
折叠重复项)和EXCEPTALL
-之间的细微差别,使所有单独的不匹配行保持一致。
EXCEPT
手册中的详细信息。
以上是 在PostgreSQL中使用EXCEPT子句 的全部内容, 来源链接: utcz.com/qa/426953.html