mysql - MYSQL 中相对于另一列的条件不同

标签 mysql join sql-order-by

我有如下查询

SELECT * FROM content_type_product cp
JOIN content_field_product_manufacturer cf ON cf.nid = cp.nid group by cp.nid
ORDER
  BY field(cf.field_product_manufacturer_value,'12') DESC,
  cp.field_product_price_value DESC

这工作完美,只是一个小缺陷,有两条记录具有相同的 id(一条用于 cf.field_product_manufacturer_value='12',另一条用于 cf.field_product_manufacturer_value ='57'),我使用 group by 子句消除了它们。但问题是我想获得具有更大“field_product_price_value”的特定id,但不知何故它给了我较小的值。如果我查询“57”,那么它会为我提供具有更大 field_product_price_value 的 id,但是当我查询“12”时,它会为我提供较小“field_product_price_value”的 id。有什么方法可以指定选择具有更大“field_product_price_value”的 id

最佳答案

您应该将 max(field_product_price_value) 与适当的 GROUP BY 子句结合使用。

一般来说,仅当您在查询中同时选择普通列和聚合函数(MIN、MAX、COUNT、AVG)时,才应使用 GROUP BY 子句。

关于mysql - MYSQL 中相对于另一列的条件不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12782649/

相关文章:

PHP 插入不正确的密码

php - 如何使递归 TreeView 可折叠

php - zend框架2重新连接到数据库

join - Hive 0.13 分桶映射连接

php - 在 PHP 中将 SQL 结果作为嵌套数组获取

sql - Hive SQL多个左外部联接查询在其结果中缺少记录

sql - 为什么在 PostgreSQL 查询中对 DESC 进行排序时 NULL 值排在第一位?

hibernate - 按(链接)列排序,该列可以为空

Mysql Order By 包含数字和字母的字符串

mysql - GROUP BY 每年缺少年份