首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误#1055另一个包含非聚合列,该列在功能上不依赖于组中的列。

错误#1055另一个包含非聚合列,该列在功能上不依赖于组中的列。
EN

Stack Overflow用户
提问于 2020-12-07 08:31:02
回答 2查看 84关注 0票数 0

我知道很多问题已经在这个问题上得到了回答,但是我仍然无法理解为什么下面的问题不起作用。我的主要目标是加入一个价格和产品表,并选择每种产品最便宜的价格,根据每三个因素。

为了进行快速测试,我只是筛选了我的价格表,其中包含了相应的产品、价格、rrp和一些列的参考信息,以便知道何时应用哪个价格。

代码语言:javascript
复制
SELECT product_ref_id, price, rrp WHERE (.... filter by attributes ....).

这很好,但是为了保持一致性,我至少可以得到2行。问题是我想得到最便宜的价格,但我也需要rrp来显示。于是我走过去,做了:

代码语言:javascript
复制
SELECT product_ref_id, min(price), rrp WHERE (.... filter by attributes ....) GROUPY BY product_ref_id

这给了我错误#1055:

#1055 - SELECT list的表达式#3不是按子句分组,而是包含非聚合列'igros_backend.prices.rrp‘,它在功能上不依赖于按子句分组的列;这与sql_mode=only_full_group_by不兼容。

一旦我省略了rrp选择,它就工作得很好,但是我无法得到我的rrp ( rrp也可以在结果上有所不同)。如果我将rrp放入我的group_by中,那么每个id得到的结果超过一个,这也不是它想要的方式。正如我所读到的,禁用only_full_group_by并不是一条路。我的大脑哪里出问题了有什么帮助吗?

这是否是因为并非所有的rrp都有固定的价格,但也可以是空的?编辑:事实上,每个条目都有自己的id,所以在我看来,在使用子查询时,最合理的方法是根据我的条件预先筛选表,将id与价格和uvp连接起来,然后按my min( price )选择,然后按after分组。

进一步编辑:由于我只是无法使它工作,我将解释所有的更详细。这是我的桌子

代码语言:javascript
复制
id    product_id_ref    filterOption   filterOptionCode    price   rrp

对于每个product_id_ref,表中可能有一个或多个条目。我必须检查filterOption是否适用(这取决于记录的用户)。所以我至少得到一个结果回来,大部分是2个,但更多也是可能的。

效果很好..。如果我只想要价格和product_ref_id的话。问题可能是我多次返回相同的product_id_ref?

EN

Stack Overflow用户

回答已采纳

发布于 2020-12-07 08:36:35

当您在子查询中找到最低价格时,您可以得到它:

代码语言:javascript
复制
SELECT 
  sub.product_ref_id, 
  sub.price, 
  sub.product_id,
  sub.id,
  main.rrp
FROM
  {table} AS main
JOIN 
  (SELECT 
     product_ref_id, 
     MIN(price),
     product_id,
     MIN(id)
   WHERE 
     [... filter by attributes ....]
   GROUP BY 
     product_ref_id, product_id
  ) AS sub ON sub.product_ref_id = main.product_ref_id AND sub.price = main.price AND sub.id = main.id AND sub.product_id = main.product_id;

因此,在一个子查询中,您将得到包含最小价格的字段,并使用这个结果集与原始表记录连接。这样,您就可以以最小价格获得行的其余字段。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65178288

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档