请问大家,这个sql语句如何写?谢谢。mysql数据库
有两个表商品类别表product_type,商品表product(里面有商品类别表id,create_time等字段,作为外键)两个表中数据都很多。我要实现:每种商品都显...
有两个表
商品类别表product_type,商品表product(里面有商品类别表id,create_time等字段,作为外键)
两个表中数据都很多。
我要实现:每种商品都显示出来5条记录。且每种商品各自按照添加时间倒序排列。
即:如下模式
商品1 类别1
商品2 类别1
商品3 类别1
商品4 类别1
商品5 类别1
商品6 类别2
................ 展开
商品类别表product_type,商品表product(里面有商品类别表id,create_time等字段,作为外键)
两个表中数据都很多。
我要实现:每种商品都显示出来5条记录。且每种商品各自按照添加时间倒序排列。
即:如下模式
商品1 类别1
商品2 类别1
商品3 类别1
商品4 类别1
商品5 类别1
商品6 类别2
................ 展开
展开全部
select top(5) 商品,类别 \\显示每个分类的前5条信息
from product_type,product
where product_type.类别=product.类别 \\两个表的对应关系
group by 类别 \\分类汇总
order by create_time dec \\降序排列
由于不知道你具体表间关系和列名,你自己调整下,应该就行了
from product_type,product
where product_type.类别=product.类别 \\两个表的对应关系
group by 类别 \\分类汇总
order by create_time dec \\降序排列
由于不知道你具体表间关系和列名,你自己调整下,应该就行了
追问
mysql 没有top函数
追答
我们可以利用MySQL中SELECT支持的一个子句——LIMIT——来完成这项功能。
LIMIT可以实现top N查询,也可以实现M至N(某一段)的记录查询,具体语法如下:
SELECT * FROM MYTABLE
ORDER BY AFIELD
LIMIT offset, recnum
其中offset为从第几条(M+1)记录开始,recnum为返回的记录条数。例:
select * from mytable
order by afield
limit 2, 5
即意为从第3条记录开始的5条记录。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询