mysql - 如何获取mysql查询每行的计数?

标签 mysql

我有三张 table

1)review_trans

2)user_comment_trans

3)helpful_review_trans

表结构如下所示

review_trans

 review_id(pk) |   review_desc  |  user_id 
 --------------+----------------+-----------
 1             |  hello world   |   1
 2             |  test2         |   1
 3             |  test3         |   2

user_comment_trans

 comment_id  |   review_id  |     user_id
 ------------+--------------+------------
  1          |        1     |         4
  2          |        1     |         2
  3          |        2     |         3

helpful_review_trans

 helpful_review_id |  review_id |  user_id
 ------------------+------------+------------
 1                 |     1      |     4 
 2                 |     1      |     2
 3                 |     2      |     3

我希望每条评论都能获得有用的投票和评论。 所以我想要的输出是这样的

输出

review_id       review_desc      count(helpful_review_id)      count(comment_id)
------------+------------------+----------------------------+--------------------
1           |    hello world   |           2                |           2
2           |    test2         |           1                |           1
3           |    test3         |                            |

我无法获取此记录。我尝试加入表,但它只显示一条 review_desc 请指教和帮助。

最佳答案

使用左连接和计数(不同)

select r.review_id, 
r.review_desc,
count(distinct u.comment_id),
count(distinct h.helpful_review_id)
from review_trans r
left join user_comment_trans u on(r.review_id = u.review_id)
left join helpful_review_trans h on(r.review_id = h.review_id)
group by r.review_id

Demo

关于mysql - 如何获取mysql查询每行的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25780859/

相关文章:

mysql - 无法在 MySQL 中保存大图像

php - 比较一个数组中的数组值 PHP

php - 从视频中选择 * WHERE url = substring($url, 0, 5)

mysql - 在 MySQL 中,我应该如何更改语法以添加 'WHERE' 子句

php - 我的数据库在 phpMyAdmin 上不可见,但在 mysql 的数据文件夹中可用

php - 将 'sign-up' 日期插入 MySQL 表

mysql - 使用 MySQL 查询查找活跃和不活跃的学生

Mysql查询优化

mysql - 查询 mysql DB 时 Rails 4 中的编码错误

mysql - 从多个表中检索数据的 SQL 查询