Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql使用同一个表和按类别分组的多个联接_Mysql_Sql - Fatal编程技术网

mysql使用同一个表和按类别分组的多个联接

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..

我需要回答这个问题

分组类别(类别限制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..  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;