MySql:限制用户在select查询结果中出现的次数
我在这里迷路了:) 我需要限制用户在select查询结果中出现的次数MySql:限制用户在select查询结果中出现的次数,mysql,Mysql,我在这里迷路了:) 我需要限制用户在select查询结果中出现的次数 让我们考虑这两个表: user +------------+-----------+----------+---------------------+ | user_id | firstname | lastname | max_articles | +------------+-----------+----------+---------------------+ | u01 | Yusu
让我们考虑这两个表:
user
+------------+-----------+----------+---------------------+
| user_id | firstname | lastname | max_articles |
+------------+-----------+----------+---------------------+
| u01 | Yusuf | Shakeel | 2 |
| u02 | John | Doe | 6 |
| u03 | Jane | Doe | 4 |
+------------+-----------+----------+---------------------+
articles
+------------+-----------+-----------+
| article_id | user_id | content |
+------------+-----------+-----------+
| art01 | u01 | BláBláBlá |
| art02 | u01 | BláBláBlá |
| art03 | u03 | BláBláBlá |
| art04 | u03 | BláBláBlá |
| art05 | u02 | BláBláBlá |
| art06 | u01 | BláBláBlá |
+------------+-----------+-----------+
在用户表中,有每个用户可以显示的最大文章数
因此,当我这样做时:
SELECT * FROM articles
它将列出所有文章。正如您所看到的,用户u01有3篇文章,但它只能根据用户表信息显示2篇文章
我需要的是选择所有文章,但根据user.max\u articles限制每个用户的文章数量
这可能吗?我怎样才能解决这个问题
我希望我能够解释我的意思。
我正在使用MySql
非常感谢大家
附言-我几乎编辑了所有内容。多谢各位
编辑
选择查询应考虑这两个表。大概是这样的:
SELECT articles.* FROM articles
LEFT JOIN user ON user.user_id = articles.user_id
因此,它应该如何计算每个用户列出的结果,并将其与user.max_articles(如果大于)进行比较=它将继续列出除该用户之外的结果-它应该在列出时为每个用户执行此操作
如何做到这一点
非常感谢。试试这个,告诉我结果是否接近您想要达到的目标:
SELECT articles.user_id,
-- 1st operation
COUNT(ARTICLE_ID) AS op1,
-- 2nd operation
MAX(ARTICLE_ID) AS op2,
-- 3rd operation
IF(COUNT(ARTICLE_ID) >= MAX_ARTICLES, COUNT(ARTICLE_ID),'') AS op3,
MAX_ARTICLES
FROM articles
LEFT JOIN USER ON user.user_id = articles.user_id
GROUP BY USER.USER_ID;
您好,您是否可以在已经测试过的MySQL查询中显示一些表和数据(如果有的话)?另外,如果你能说明你的预期输出是怎样的,那就更好了。谢谢看一看你可能会在那里找到一些想法。@tcadidot0谢谢你的评论。我编辑了这个问题。请看是否有更好的解释。谢谢@PeterPan的编辑。我想知道,您是想要每个用户的
article\u id
中的最大值(例如u01=art06
)还是每个用户的总出现次数(例如u01=3次
)?@tcadidot0我再次编辑,请看一看,也许是回答您问题的最佳方式。谢谢,谢谢你的回答。但总而言之,我认为它不起作用,因为我需要一个文章列表,而您的查询是按用户分组的:/如果是这样,请编辑您的问题,并附上一个说明,说明您的预期输出是什么样子的。您可以在问题中重复使用用户或文章
表,并相应地更改数据。这样,我们就可以确定哪种做法最适合获得您想要的结果