嗨我在编写查询时遇到了问题。我会很乐意收到一些建议!SQL查询的WHERE子句中的许多条件
我的表格被称为TagObjects;它有5列,但问题的3个重要问题是:tob_tag,tob_object和tob_objectType。
我需要实现的查询如下:具有未知数量的对(tob_object,tob_objectType)我需要知道所有对具有共同的所有tob_tag。
我跟这个查询尝试(该数字只是为例):
SELECT "TagsObjects"."tob_tag"
FROM "TagsObjects"
WHERE TRUE
AND ("TagsObjects"."tob_object" = 8 AND "TagsObjects"."tob_objecttype" = 1)
AND ("TagsObjects"."tob_object" = 9 AND "TagsObjects"."tob_objecttype" = 1)
GROUP BY "TagsObjects"."tob_tag";
的WHERE TRUE是存在的,因为我是动态生成的查询。这个查询适用于一对(WHERE子句中的一个AND),当我用两对(如我上面发布的示例)尝试它时,它不返回任何行(并且数据在那里!)。
如果有人知道我做错了什么或者做什么的方法,这将是一个大帮助!
使用PostgreSQL 9.0.1。
丢掉TRUE;通过OR来代替AND来加入替代品。 并将SQL关键字(如FROM,WHERE和GROUP BY)放在行首。 – 2011-02-28 23:48:36
@Jonathan,你可以责怪我糟糕的格式。我添加了换行符(SQL片段最初是一行),但没有将它们添加到最佳位置。我现在要解决这个问题。 – 2011-02-28 23:52:00
YOu需要使用OR而不是AND作为您的查询的一部分... TRUE AND((..)OR(..)OR(..)) – MatBailie 2011-03-01 01:18:37