首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取使用JOIN返回的相关表的行数?

如何获取使用JOIN返回的相关表的行数?
EN

Stack Overflow用户
提问于 2018-07-11 06:15:59
回答 1查看 37关注 0票数 -1

我正在创建一个论坛系统,其中包含论坛,线程,帖子和喜欢。这个问题是关于后两个表的,这两个表是用以下语句创建的:

代码语言:javascript
复制
CREATE TABLE posts
(
    postID INT(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
    postDate DATETIME NOT NULL,
    postContent TEXT NOT NULL,
    postThread INT(8) NOT NULL,
    FOREIGN KEY(postThread) REFERENCES threads(threadID) ON DELETE CASCADE ON 
        UPDATE CASCADE
);

CREATE TABLE likes
(
  likeID INT(8) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  likeUserID INT(8) NOT NULL,
  likePostID INT(8) NOT NULL,
  FOREIGN KEY(likePostID) REFERENCES posts(postID),
  FOREIGN KEY(likeUserID) REFERENCES users(userID)
);

在每个线程页面(thread.php?id=x)上,我查询数据库以获得将在我的HTML中回显的以下数据:

代码语言:javascript
复制
SELECT posts.postID, posts.postContent, likes.likePostID           
FROM posts
LEFT JOIN likes ON posts.postID = likes.likePostID
WHERE posts.postThread = ?
ORDER BY posts.postDate asc

在phpmyadmin中,当我运行以下语句时会得到以下结果:

代码语言:javascript
复制
postID | likePostID | postContent
   1         3            foo
   1         3            foo
   1         3            foo
   2        NULL          bar
   3        NULL          blah

我想知道如何获取LEFT JOIN返回的行数,其中当前帖子的ID与likePostID不为空的likePostID匹配,在上面的示例中,ID为1的帖子的行数为3。页面上的每个帖子都会在“喜欢”按钮附近回显这个值。这可以使用一个查询来完成吗,或者我需要单独查找每个帖子的点赞数量?

我目前正在使用while ($row = mysqli_fetch_assoc($result))回显所有相关信息。

EN

回答 1

Stack Overflow用户

发布于 2018-07-11 06:28:11

SQL有一个count函数,如下所示:

https://www.w3schools.com/sql/sql_count_avg_sum.asp

代码语言:javascript
复制
select count(column_name) from table where condition

显然,您必须使用您的连接批量扩展该查询,但这会给您一个计数。

否则,php mysqli_num_rows()中会有一个函数返回行数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51274644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档