首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从mysql表中选择最新版本

从mysql表中选择最新版本
EN

Stack Overflow用户
提问于 2010-10-07 22:26:09
回答 1查看 5.3K关注 0票数 2

我有两个mysql表:

包含可以买到的物品的物品:

代码语言:javascript
运行
复制
CREATE TABLE `item` (
`itemid` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`itemid`)
) ENGINE=InnoDB;

包含所有采购的采购:

代码语言:javascript
运行
复制
CREATE TABLE `purchase` (
    `purchaseid` int(11) NOT NULL AUTO_INCREMENT,
    `date` date DEFAULT NULL,
    `amount` int(11) DEFAULT NULL,
    `itemid` int(11) DEFAULT NULL,
    PRIMARY KEY (`purchaseid`)
) ENGINE=InnoDB;

我想根据日期和购买I选择最近的20个购买,并加入item表以显示这些购买的名称。如果一件商品在最近的20次购买中被购买了一次以上,它应该只显示一次。没有重复项。我真的搞不懂这件事。也许你可以?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-07 22:29:38

难道不是:

代码语言:javascript
运行
复制
SELECT `name`
from `item` join `purchase` using(`itemid`)
group by `itemid` order by `date` desc limit 20

代码语言:javascript
运行
复制
SELECT DISTINCT `name`
from `item` join `purchase` using(`itemid`)
order by `date` desc limit 20

GROUP BY一样,使用DISTINCT可以省略重复项(它还允许您对分组的数据执行功能)

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

https://stackoverflow.com/questions/3882645

复制
相关文章

相似问题

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