2017-04-19 40 views
0

运行此查询:SELECT EXISTS总是返回相同的结果

SELECT EXISTS (select true from "MyGroup" WHERE "UserID"=3 AND "GroupID"=17); 

返回的结果是:

exists 
------- 
t 
(1 row) 

它不应该存在。没有ID为17的组。在PGAdmin中确认。

实际上,任何UserID和GroupID(例如355,267)都会返回相同的结果。这里有什么问题?

感谢

+1

如果运行内部查询,它不不会返回任何记录? –

+0

现在,它的工作。我不需要在括号外面的语句'SELECT EXISTS'的第一部分。谢谢。 – Jelphy

回答

0
SELECT * FROM MyGroup WHERE EXISTS(select true from MyGroup WHERE UserID=3 AND GroupID=17) 

又如

SELECT *FROM products WHERE EXISTS (SELECT 1 
      FROM inventory 
      WHERE products.product_id = inventory.product_id); 
1

也有一些是不对您的条件,因为它按预期工作对我来说:

select exists (select true where false); 
exists 
-------- 
f 
相关问题