从mysql表中选择最近的
我有两个mysql表: 包含可购买物品的物品:从mysql表中选择最近的,mysql,select,join,group-by,Mysql,Select,Join,Group By,我有两个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,
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;
我想根据日期和purchaseid选择最近20次购买,并加入item表以显示这些购买的名称。如果一件物品在最近20次购买中被购买了不止一次,它应该只显示一次。没有重复的。我真的搞不懂。。也许你可以?谢谢 是不是:
SELECT `name`
from `item` join `purchase` using(`itemid`)
group by `itemid` order by `date` desc limit 20
或
使用DISTINCT
可以省略重复项,就像使用groupby
一样(也可以对分组数据执行功能)
SELECT DISTINCT `name`
from `item` join `purchase` using(`itemid`)
order by `date` desc limit 20