Postgresql 带有逻辑运算符“AND”或“NOT”的PSQL Where子句

Postgresql 带有逻辑运算符“AND”或“NOT”的PSQL Where子句,postgresql,analytics,logical-operators,Postgresql,Analytics,Logical Operators,这是我在购物篮分析查询中遇到的问题,客户可以选择他的购物篮并调用这样的搜索查询 select ti.* from transaction t join transaction_items ti on ti.unique_id = t.unique_id where ti.display_description 'ROMA TOMATO' AND 'BANANA' AND ('JALAPENO' OR 'ONION WHITE' AND ('SALSA' OR 'GUACAMOLE')),

这是我在购物篮分析查询中遇到的问题,客户可以选择他的购物篮并调用这样的搜索查询

select ti.* from transaction t join transaction_items ti on ti.unique_id = t.unique_id where ti.display_description  'ROMA TOMATO' AND 'BANANA' AND ('JALAPENO' OR 'ONION WHITE' AND ('SALSA' OR 'GUACAMOLE')),
        'VITAMINS' AND 'PRODUCE' OR ('POTATO' AND 'SHRIMP') AND NOT ('MEAT' OR 'FISH' OR 'PIE')
在上面的查询中,搜索了两个不同的篮子。我们可以把篮子分开。 因此,我们必须按篮子提供数据组。 一篮“罗马番茄”和“香蕉”以及“墨西哥辣椒”或“洋葱白”和“萨尔萨”或“鳄梨酱”的销售额 篮子里有两种“维生素”和“农产品”或“土豆”和“虾”,而不是“肉”或“鱼”或“馅饼”

事务处理项目表的示例数据

amt     qty  display_description     unique_id 
2.470   1   ROMA TOMATO "2704-7075-12-201111"
2.470   1   BANANA  "2704-7075-12-201111"
2.190   1   JALAPENO    "2704-7075-12-201111"
2.190   1   ONION   "2704-7075-12-201111"
2.190   1   SALSA   "2704-7075-12-201111"
0.880   1   GUACAMOLE   "2704-7075-12-201111"
2.860   4840    VITAMINS    "2704-7075-12-201111"
1.580   2   PRODUCE "2704-7075-12-201111"
3.560   1550    POTATO  "2704-7075-12-201111"
0.990   1   SHRIMP  "2704-7075-12-201111"
0.340   1   MEAT    "2704-7075-12-201111"
0.340   1   MEAT    "2704-7075-12-201111"
0.330   1   FISH    "2704-7075-12-201111"
0.330   1   FISH    "2704-7075-12-201111"
0.330   1   PIE "2704-7075-12-201111"
0.330   1   ABC "2704-7075-12-201111"
0.330   1   ABC "2704-7075-12-201111"
0.330   1   ABC "2704-7075-12-201111"
0.330   1   XYZ "2704-7075-12-201111"
0.990   1   XYZ "2704-7075-12-201111"
0.500   1   XYZ "2704-7075-12-201111"
0.500   1   XYZ "2704-7075-12-201111"
2.470   1   ROMA TOMATO "2704-7075-12-201112"
2.470   1   BANANA  "2704-7075-12-201112"
2.190   1   JALAPENO    "2704-7075-12-201112"
2.190   1   ONION   "2704-7075-12-201112"
2.190   1   SALSA   "2704-7075-12-201112"
0.880   1   GUACAMOLE   "2704-7075-12-201112"
2.860   4840    VITAMINS    "2704-7075-12-201112"
1.580   2   PRODUCE "2704-7075-12-201112"
3.560   1550    POTATO  "2704-7075-12-201112"
0.990   1   SHRIMP  "2704-7075-12-201112"
0.330   1   ABC "2704-7075-12-201112"
0.330   1   ABC "2704-7075-12-201112"
0.330   1   ABC "2704-7075-12-201112"
0.330   1   XYZ "2704-7075-12-201112"
0.990   1   XYZ "2704-7075-12-201112"
0.500   1   XYZ "2704-7075-12-201112"
0.500   1   XYZ "2704-7075-12-201112"

您如何期望一个列同时包含值ROMA TOMATO和BANANA?最糟糕的数据模型会产生大量问题。甚至不用费心去修复这些问题,修复真正的问题:你的数据模型。我已经修改了我的问题,你能再看一次吗。事务\u项对于单个事务有多行\u i单击其下方的链接,然后添加一些示例数据和基于该数据的预期输出。有关如何创建美观的文本表的一些提示,请参阅。提供了示例数据