MySql:限制用户在select查询结果中出现的次数

MySql:限制用户在select查询结果中出现的次数,mysql,Mysql,我在这里迷路了:) 我需要限制用户在select查询结果中出现的次数 让我们考虑这两个表: user +------------+-----------+----------+---------------------+ | user_id | firstname | lastname | max_articles | +------------+-----------+----------+---------------------+ | u01 | Yusu

我在这里迷路了:)

我需要限制用户在select查询结果中出现的次数

让我们考虑这两个表:

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我再次编辑,请看一看,也许是回答您问题的最佳方式。谢谢,谢谢你的回答。但总而言之,我认为它不起作用,因为我需要一个文章列表,而您的查询是按用户分组的:/如果是这样,请编辑您的问题,并附上一个说明,说明您的预期输出是什么样子的。您可以在问题中重复使用
用户或文章
表,并相应地更改数据。这样,我们就可以确定哪种做法最适合获得您想要的结果