[英]mysql - Select unique column based on max value of another column in a different table
I'm trying to select only the highest kw ( model
table) for each category ( type
table). 我试图为每个类别 ( type
表)仅选择最高的kw ( model
表)。
Model table 型号表
+-----+----+---------+
| id | kw | type_id |
+-----+----+---------+
| 1 | 2 | 1 |
| 2 | 5 | 1 |
| 3 | 10 | 2 |
| 4 | 4 | 2 |
| 5 | 5 | 2 |
| 6 | 4 | 3 |
| 7 | 3 | 4 |
| 8 | 7 | 5 |
+-----+----+---------+
Type table 型号表
+-----+----------+
| id | category |
+-----+----------+
| 1 | 1 |
| 2 | 1 |
| 3 | 2 |
| 4 | 2 |
| 5 | 2 |
+-----+----------+
Attempts 尝试
1. this query returns a list of all the kws and categories : 1.此查询返回所有kws和类别的列表:
SELECT A.kw, B.category
FROM AC_MODEL A
INNER JOIN AC_TYPE B ON A.type_id = B.id
ORDER BY A.kw DESC
2. I tried to do something like this answer but it doesn't work: 2.我试图做这样的事情的答案 ,但它不工作:
SELECT A.kw, B.category
FROM AC_MODEL A
INNER JOIN AC_TYPE B ON A.type_id = B.id
ORDER BY A.kw DESC
WHERE (A.kw, B.category) IN (
SELECT MAX(A.kw), B.category
FROM AC_MODEL A
INNER JOIN AC_TYPE B ON A.type_id = B.id
GROUP BY B.category
)
Does anybody have an idea? 有人有主意吗?
Use MAX
and GROUP BY
使用MAX
和GROUP BY
SELECT MAX(m.kw), t.category
FROM model m
INNER JOIN type t ON m.type_id = t.id
GROUP BY t.category
OUTPUT OUTPUT
MAX(m.kw) category
10 1
7 2
SQL FIDDLE: http://sqlfiddle.com/#!9/5d0df/5/0 SQL FIDDLE: http ://sqlfiddle.com/#!9 / 5d0df / 5/0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.