【发布时间】:2015-01-04 22:44:49
【问题描述】:
我想显示用户发布的帖子数量,但我有几个不同的表,需要匹配 id 并计算它们。
类似这样的:
用户表
userid username email regdate
34 mister email@some.tld 2013-10-26 12:01:07
帖子表
postid creator post_comment post_title status
1 34 This is comment Post 1 published
2 12 This is comment Post 2 published
3 34 This is comment Post 3 pending
4 25 This is comment Post 4 published
5 34 This is comment Post 5 published
现在我已经有一个查询,我从用户表中选择有关特定用户的所有数据:
mysqli_query($conn, "SELECT * FROM users WHERE userid = $userid");
$userid 是当前登录的用户的 ID。这很好用:它选择有关该用户的所有相关信息。
但我想显示每个用户发布的帖子数。我在 w3schools 的某处读到 SQL COUNT 函数的工作原理如下:
mysqli_query($conn, "SELECT COUNT(creator) AS userposts FROM posts WHERE creator=$userid");
但是,正如您在发布的表格示例中看到的那样,在 5 个帖子中,3 个来自用户 34,而这 3 个中的 1 个未发布。
我不知道如何进行 SQL 查询,该查询选择 userid 与 $userid 匹配的所有用户,然后从帖子中选择创建者和状态,并计算创建者为 $userid 且状态已发布的帖子数。
这是我最终的目标:
用户先生发布了 2 个帖子。
【问题讨论】:
-
使用内连接,
SELECT t1.name, t2.salary FROM employee t1 INNER JOIN info t2 ON t1.name = t2.name;w3schools.com/sql/sql_join_inner.asp