我写了一个包含几个连接的mysql查询,结果如下。
id | title | type | rent
------------------------------
1 abc low 100
2 xyz low 200
2 xyz mid 150
2 xyz high 300
3 mno low 600
3 mno mid 200
我希望小组(group by
)title
拥有“最低租金”。
PLZ帮助。
我想拥有以下结果集
id | title | type | rent
------------------------------
1 | abc | low | 100
------------------------------
2 | xyz | mid | 150
------------------------------
3 | mno | mid | 200
------------------------------
答案 0 :(得分:2)
你可以这样做:
SELECT t1.*
FROM tablename AS t1
INNER JOIN
(
SELECT title, MIN(rent) AS minrent
FROM tablename
GROUP BY title
) AS t2 ON t1.title = t2.title
AND t1.rent = t2.minrent;
这会给你:
| ID | TITLE | TYPE | RENT |
----------------------------
| 1 | abc | low | 100 |
| 2 | xyz | mid | 150 |
| 3 | mno | mid | 200 |
这将为每个title
提供最少的租金。
但是:如果您只查找具有最新rent
的磁贴,那么您可以执行此操作:
SELECT t1.*
FROM tablename AS t1
ORDER BY rent
LIMIT 1
这会给你这一行:
| ID | TITLE | TYPE | RENT |
----------------------------
| 1 | abc | low | 100 |
请注意:如果有重复的Rent
具有相同的最低租金,那么这不会给您重复。在这种情况下,请使用@user2009463建议的方式。
答案 1 :(得分:1)
select * from table_name
where rent = (select min(rent) from table_name)
group by title;