在Postgresql中输出布尔值 < P> >我想在PostgreSQL中编写一个查询,输出 true< /Cord> >如果表是另一个给定表的子表,请考虑下面的例子: TABLE A TABLE B --x: int-- --x: int-- 2 2 3 3 4
查询的想法是这样的:在Postgresql中输出布尔值 < P> >我想在PostgreSQL中编写一个查询,输出 true< /Cord> >如果表是另一个给定表的子表,请考虑下面的例子: TABLE A TABLE B --x: int-- --x: int-- 2 2 3 3 4,sql,postgresql,Sql,Postgresql,查询的想法是这样的: NOT EXISTS(SELECT 1 FROM B b WHERE b.x NOT IN (SELECT x FROM A)) 内部SELECT不返回任何行,因此不存在应该是TRUE,但这会返回一个错误,我做错了什么?使用连接如何 select (case when count(*) = count(a.x) then 'SUBSET' else 'NOT SUBSET' END) from b left join a on b.x = a.x 您
NOT EXISTS(SELECT 1 FROM B b WHERE b.x NOT IN (SELECT x FROM A))
内部
SELECT
不返回任何行,因此不存在
应该是TRUE
,但这会返回一个错误,我做错了什么?使用连接如何
select (case when count(*) = count(a.x) then 'SUBSET' else 'NOT SUBSET' END)
from b left join
a
on b.x = a.x
您只是忘记了用SELECT
select NOT EXISTS(SELECT 1 FROM B b WHERE b.x NOT IN (SELECT x FROM A));
我将使用EXCEPT运算符:
select count(*) = 0
from (
select *
from b
except
select *
from a
) x
我也考虑过了,但显然我需要使用存在
或不存在
进行操作。不幸的是,除了
,我不允许使用。另外,在不存在之前添加选择
也会导致错误,因为它期望来自@ani2020:no的: