使用内部联接从查询返回最小值

时间:2014-08-13 17:07:32

标签: mysql sql

我有两张桌子:

表POI:

NAME | VOTE

巴黎| RT_1

米兰| rt_2

罗马| rt_3

... | ...

表rtgitems:

ITEM | TOTALRATE

rt_1 | 22

rt_2 | 3

rt_3 | 3

rt_4 | 5

... | ...

我希望第一个表中的属性NAME在第二个表的TOTALRATE中具有最小值。例如:米兰,罗马。

我使用此查询:

SELECT POI.Name FROM POI INNER JOIN rtgitems ON POI.Vote=rtgitems.item WHERE POI.Vote = (SELECT MIN(rtgitems.totalrate) FROM rtgitems)

但是不行,我的结果是空的。 我该怎么办? 感谢。

3 个答案:

答案 0 :(得分:0)

SELECT POI.Name, min(totalrate) FROM POI INNER JOIN rtgitems ON POI.Vote=rtgitems.item
GROUP BY POI.Name

答案 1 :(得分:0)

当您在sql中使用min或max种类或函数时,您应该使用group by子句从表中获取实际输出。

SELECT POI.Name FROM POI INNER JOIN rtgitems ON POI.Vote=rtgitems.item where totalrate= (select min(totalrate) from rtgitems)
GROUP BY POI.Name 
希望它有所帮助。

答案 2 :(得分:0)

尝试SELECT POI.name FROM POI join rtgitems ON POI.vote=rtgitems.item where totalrate<=(SELECT totalrate from rtgitems order by totalrate desc limit 1)