Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 从表中选择名称,其中数组中的名称和值=0 | | 1取决于名称_Postgresql - Fatal编程技术网

Postgresql 从表中选择名称,其中数组中的名称和值=0 | | 1取决于名称

Postgresql 从表中选择名称,其中数组中的名称和值=0 | | 1取决于名称,postgresql,Postgresql,我想获取一些数据,但查询给我带来了麻烦。我尝试了很多不同的方法,但似乎无法获取。下面的信息是简化了很多,但应该给我什么我需要的基础 table id name value 0 config1 1 0 config2 0 1 config1 0 1 config2 0 2 config1 0 2 config2 1 3 config1 1 3 config2 1 所以我想做的是: 从表中选择*,其中(名称='config1'和值='1')和(名称='config2'和值='0') 我想看到的结果

我想获取一些数据,但查询给我带来了麻烦。我尝试了很多不同的方法,但似乎无法获取。下面的信息是简化了很多,但应该给我什么我需要的基础

table
id name value
0 config1 1
0 config2 0
1 config1 0
1 config2 0
2 config1 0
2 config2 1
3 config1 1
3 config2 1
所以我想做的是:

从表中选择*,其中(名称='config1'和值='1')和(名称='config2'和值='0')

我想看到的结果是:

config1 1 (this is the only important one)
config2 0 (I don't really care to see this row either)
我基本上只需要名称为config1且值为1的任何对象的数据,但仅当config2的值为0时才需要。注意:让我们假设我没有访问id的权限(它是从另一个查询生成的,而我们正在运行的查询实际上是在不同的数据库上运行的,因此对每个数据库实际上是唯一的,我们每个数据库只能有一个config1或一个config2)。

尝试以下操作:

SELECT * FROM table 
WHERE name = 'config1' AND value = '1'
AND id IN (SELECT id FROM table WHERE name = 'config2' AND value = '0')

您的查询不起作用,因为您的WHERE条件从来不会同时应用于多行,而只能单独应用于每行。您需要的是一个相关子查询,或者可能是一个自连接。