Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL数据库:在每个类别中查找最大值_Mysql_Database - Fatal编程技术网

MySQL数据库:在每个类别中查找最大值

MySQL数据库:在每个类别中查找最大值,mysql,database,Mysql,Database,这是MySQL的! 存在具有以下架构的数据库: A(项目id,类别,名称)& B(项目标识、人员、长度、价格) 问题是在长度=4的每一类商品中找到最大价格,但对于所有不同的商品,我得到所有商品id的最大值(而我想找到每一类商品的单个最高价格)。如何修复此问题?您需要在两个表上指定联接条件 SELECT DISTINCT A.item_id, category, IFNULL(MAX(B.price), NULL) FROM B left join A on A.item_id = B.item_

这是MySQL的! 存在具有以下架构的数据库:

A(项目id,类别,名称)& B(项目标识、人员、长度、价格)


问题是在长度=4的每一类商品中找到最大价格,但对于所有不同的商品,我得到所有商品id的最大值(而我想找到每一类商品的单个最高价格)。如何修复此问题?

您需要在两个表上指定联接条件

SELECT DISTINCT A.item_id, category, IFNULL(MAX(B.price), NULL)
FROM B
left join A on A.item_id = B.item_id -- defining the specific left join to include null results
WHERE B.length >= 4
GROUP BY A.item_id

指定MySQL version.with length=4…如果项目不在B中,但在A中,只需将最高价格显示为“Null”——您的查询将跳过这些项。您的查询将显示B中存在且A中不存在或存在的记录,而OP需要向后显示。
SELECT DISTINCT A.item_id, category, IFNULL(MAX(B.price), NULL)
FROM B
left join A on A.item_id = B.item_id -- defining the specific left join to include null results
WHERE B.length >= 4
GROUP BY A.item_id