在PostgreSQL中使用EXCEPT子句
发布时间:2020-12-13 15:58:44 所属栏目:百科 来源:网络整理
导读:我试图使用EXCEPT子句从表中检索数据.我想获取table1中的所有行,除了table2中存在的那些行. 据我所知,以下内容不起作用: CREATE TABLE table1(pk_id int,fk_id_tbl2 int);CREATE TABLE table2(pk_id int);Select fk_id_tbl2FROM table1ExceptSelect pk_idFR
我试图使用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的唯一方法似乎是从相同的表中选择或从不同的表中选择具有相同列名的列. 有人可以解释一下如何最好地使用explain子句吗? 解决方法
您的查询似乎完全有效:
SELECT fk_id_tbl2 AS some_name FROM table1 EXCEPT -- you may want to use EXCEPT ALL SELECT pk_id FROM table2; 列名与查询无关.只有数据类型必须匹配.查询的输出列名是fk_id_tbl2,因为它是第一个SELECT中的列名.您可以使用任何别名. 经常被忽视的是:EXCEPT(折叠重复)和EXCEPT ALL之间的细微差别 – 它保留了所有单独的不匹配行. > Select rows which are not present in other table Details for (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |