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的没有查询到,请大牛指教。 展开
表一:
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的没有查询到,请大牛指教。 展开
1个回答
展开全部
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 改了下,达到效果了,谢了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询