SELECT name,
manufacturer,
prize
FROM products AS p
GROUP BY manufacturer
HAVING prize = (
SELECT Max(prize)
FROM products p1
WHERE p.`id-product` = p1.`id-product`
GROUP BY p1.manufacturer DESC
LIMIT 1
)
错误是:
#1054 - Unknown column 'shop.p.id.product' in 'where clause'
最佳答案
我认为您需要相关的子查询
:
SELECT p.name, p.manufacturer, p.prize
FROM products AS p
WHERE p.prize = (SELECT MAX(p1.prize) FROM products p1 WHERE p1.manufacturer = p.manufacturer);
通过这种方式,您将获得价格最高的制造商
。
编辑:如果一个产品
具有相同的奖品
,那么您将需要PK
(主要/身份)列指定唯一序列:
SELECT p.name, p.manufacturer, p.prize
FROM products AS p
WHERE p.pk = (SELECT p1.pk
FROM products p1
WHERE p1.manufacturer = p.manufacturer
ORDER BY p1.prize DESC
LIMIT 1
);
如果您运行的是最新版本的MySQL
,那么您还可以使用排名功能:
SELECT p.*
FROM (SELECT p.name, p.manufacturer, p.prize,
ROW_NUMBER() OVER (PARTITION BY p.manufacturer ORDER BY p.prize DESC) AS Seq
FROM products AS p
) p
WHERE Seq = 1;
关于mysql - SQL 看不到别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53944634/