我有两个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;
我想根据日期和purchaseid选择最近20次购买,并加入项目表以显示这些购买的名称。如果在最近的20次购买中已经多次购买了某件商品,那么该商品只会出现一次。没有重复。我真的想不出来......也许你可以吗?谢谢!
答案 0 :(得分:2)
不是吗:
SELECT `name`
from `item` join `purchase` using(`itemid`)
group by `itemid` order by `date` desc limit 20
OR
SELECT DISTINCT `name`
from `item` join `purchase` using(`itemid`)
order by `date` desc limit 20
使用DISTINCT
可以省略重复项,GROUP BY
(也允许您对分组数据执行功能)可以省略重复项