首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅按连接表最大值选择行

问仅按连接表最大值选择行
EN

Stack Overflow用户
提问于 2013-09-09 16:16:30
回答 2查看 82.4K关注 0票数 22

我只想为u.classno,u.userno选择具有最大b.enddate的行。但它不起作用。

代码语言:javascript
复制
select u.classno, u.userno, b.enddate
from libUser u
join book b on b.id = u.bookid
group by u.classno, u.userno
having b.enddate=max(b.enddate) //doesn't works
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-09 16:19:48

有什么问题:

代码语言:javascript
复制
select u.classno, u.userno, MAX(b.enddate)
from libUser u
join book b on b.id = u.bookid
group by u.classno, u.userno
票数 10
EN

Stack Overflow用户

发布于 2013-09-09 16:28:35

在官方的MySQL文档中,Here是一篇很好的文章,但是那里只使用标准的MySQL,所以它可以应用于您正在使用的任何关系数据库管理系统。

包含某一列的分组最大值的行

任务:对于每件商品,找出价格最贵的经销商。

这个问题可以通过下面这样的子查询来解决:

从商店s1 WHERE price=中选择商品,经销商,价格( SELECT MAX(s2.price)从商店s2中选择MAX(s2.Price),其中s1.article = s2.article);

前面的示例使用相关子查询,这可能效率低下(请参阅第13.2.10.7节,“相关子查询”)。解决该问题的其他可能方法是在FROM子句或左连接中使用不相关的子查询。

不相关子查询:

shop s1 JOIN ( SELECT文章,MAX(价格)作为逐条从店铺分组中的价格)作为s2 ON s1.article = s2.article和s1.price = s2.price;

左连接:

从店铺中选择s1.article,s1.reator,s1.price,加入s1.article = s2.article s1 s1.price < s2.price中的店铺s2,其中s2.article为空;

左连接的工作原理是:当s1.price达到最大值时,没有s2.price具有更大的值,并且s2行的值将为NULL。

票数 60
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18694094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档