mysql使用同一个表和按类别分组的多个联接
我需要回答这个问题 分组类别(类别限制5)和按发布顺序排列的最新新闻。有人帮我吗 桌子 新闻 类别mysql使用同一个表和按类别分组的多个联接,mysql,sql,Mysql,Sql,我需要回答这个问题 分组类别(类别限制5)和按发布顺序排列的最新新闻。有人帮我吗 桌子 新闻 类别 1. id 2. name 新闻有两个类别 1. news_id 2. category_id 样本输出 caption01.. 2016-01-28 category_id = 4 caption02.. 2016-01-27 category_id = 4 caption03.. 2016-01-26 category_id = 4 caption04..
1. id
2. name
新闻有两个类别
1. news_id
2. category_id
样本输出
caption01.. 2016-01-28 category_id = 4
caption02.. 2016-01-27 category_id = 4
caption03.. 2016-01-26 category_id = 4
caption04.. 2016-01-25 category_id = 4
caption05.. 2016-01-24 category_id = 4
caption06.. 2016-01-28 category_id = 3
caption07.. 2016-01-27 category_id = 3
caption08.. 2016-01-26 category_id = 3
caption09.. 2016-01-25 category_id = 3
caption10.. 2016-01-24 category_id = 3
caption11.. 2016-01-28 category_id = 6
caption12.. 2016-01-27 category_id = 6
caption13.. 2016-01-26 category_id = 6
caption14.. 2016-01-25 category_id = 6
caption15.. 2016-01-24 category_id = 6
我尝试根据您的表结构在mysql中创建表。 我的理解是,首先需要按类别分组,然后按日期分组
select caption , published_at,category_id from news,news_has_cat where id = news_id order by category_id desc,published_at;
在我的例子中,上面的查询给出了按类别和日期逆序排列的输出。因此,我不得不做下面的查询,以满足您的要求
select caption , published_at,category_id from news,news_has_cat where id = news_id order by category_id desc,published_at desc;
试试看您最好在
新闻
表中添加一个类别
列,并在新闻.category
和类别.id
之间设置一个外键。我无法更改表结构。因为这个脚本运行在很多服务器和移动应用程序上。新闻行可能有多个类别。这就是我使用该结构的原因。此解决方案用于按类别\u id排序。。但我想通过分类来限制分组。。这样,我的代码类别中就有了变量:Darray(5,2,6)news1-date-cat=5 news2-date-cat=5 news3-date-cat=2 news4-date-cat=2 news5-date-cat=6 news6-date-cat=6。。。。谢谢你的回答
select caption , published_at,category_id from news,news_has_cat where id = news_id order by category_id desc,published_at desc;