【发布时间】:2018-12-25 18:21:28
【问题描述】:
我想从两个表中选择每个类别的最后 3 条新闻
first table ' Categories ' & ' news '
分类表
ID_CAT | NAME | PRIORITE
新闻表
ID | ID_CAT | TITLE | THE_NEWS
我尝试在此 SQL 代码中进行限制,但它只给了我所有类别的最后 3 条新闻
SELECT C.PRIORITE, N.*
FROM categories C, news N
WHERE N.ID_CAT=C.ID_CAT
AND C.PRIORITE >1
ORDER BY N.ID DESC
LIMIT 3
我尝试获取所有具有PRIORITE > 1 的新闻(优先级是类别的顺序)所以,我想从每个优先级中获取 3 个最新消息。
例子:
Priorite 2 = get last 3 news
Priorite 3 = get last 3 news
...等
我在互联网上进行了一些搜索,但对我没有任何帮助,有什么解决方案吗?还是我需要创建另一个函数来获取每个类别的新闻,并在其参数中发送 ID?
【问题讨论】:
-
为了帮助解决查询问题,我们需要查看:具有列和类型的表、用于输入的示例数据、您想要的输出、您现在通过查询获得的输出。
-
@Nic3500 感谢您的回复先生,我修改了帖子
-
我的直觉是将其放入 foreach($categories as $category) 循环中,但这可能/最终会相当密集和漫长。可能有一种方法可以更快地使用子查询。据我所知,“最好”的方法是有一个“全部”页面,然后是“类别”页面来规避这一点。
-
@Joshua 感谢您的回复先生,我避免创建另一个函数,因为这会使响应时间更长,为此我想进行一个简单的查询
标签: php mysql greatest-n-per-group