mysql数据库的问题,请大牛来解答

两个表表一:itemiditem_name其他无关的字段表一中的数据如下:1商品12商品2表二:itemidopertimestatus问题如下:表二中有很多同一个ite... 两个表
表一:
itemid item_name 其他无关的字段 表一中的数据如下:
1 商品1
2 商品2

表二:
itemid opertime status
问题如下:
表二中有很多同一个itemid的操作记录,如下所示:
1 2014-11-11 3

1 2014-11-12 5
1 2014-11-13 6
2 2014-10-13 3
2 2014-11-14 8
2 2014-11-17 9
我想使用一条语句查询出来最新的status等于某个值或某些值的表一中的记录和对应的表二中的status值
请大家多多指教。
在线等
select
t1.itemid, t1.status
from
item_status as t1
left join
item_status as t2 ON t1.itemid = t2.itemid
where
t1.opertime > t2.opertime
group by t1.itemid
order by t1.opertime desc;

我用这个查询仅仅得到记录数大于等于2的,记录数等于1的没有查询到,请大牛指教。
展开
 我来答
奥丁神王
2014-11-08 · TA获得超过357个赞
知道小有建树答主
回答量:331
采纳率:100%
帮助的人:392万
展开全部
select b.* from 
(select `itemid`, max(`opertime`) as `mopertime` from `item_status` group by `itemid`) a 
left join 
`item_status` b on (a.`mopertime` = b.`opertime` and a.`itemid`=b.`itemid`);

水平有限,我不知道有没有更简单的方法,但这样可以得到你想要的结果

追问
假如我将status加到搜索条件的话,就会发现搜索到的不是最新的status,期待一同探讨。
我加入了status 改了下,达到效果了,谢了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式