我有两个mysql表:
包含可以买到的物品的物品:
CREATE TABLE `item` (
`itemid` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) DEFAULT NULL,
PRIMARY KEY (`itemid`)
) ENGINE=InnoDB;
包含所有采购的采购:
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次购买中被购买了一次以上,它应该只显示一次。没有重复项。我真的搞不懂这件事。也许你可以?谢谢!
发布于 2010-10-07 22:29:38
难道不是:
SELECT `name`
from `item` join `purchase` using(`itemid`)
group by `itemid` order by `date` desc limit 20
或
SELECT DISTINCT `name`
from `item` join `purchase` using(`itemid`)
order by `date` desc limit 20
与GROUP BY
一样,使用DISTINCT
可以省略重复项(它还允许您对分组的数据执行功能)
https://stackoverflow.com/questions/3882645
复制相似问题