mysql - 带计数的 SQL 语句

标签 mysql sql select count

我正在做作业,但其中一个 View 的 SQL 语句有问题。 基本上我得到了可以发帖的餐厅和可以点赞帖子的用户(很像 Facebook 的点赞过程)。

我的想法是创建一个 SQL 查询,向我显示 RIF = '1123J'(例如)的餐厅发布的所有帖子以及每个帖子的点赞数量。

这些是表结构:

CREATE TABLE 'posts'(
    'ID' int(11) NOT NULL AUTO_INCREMENT, 
    'restaurant_rif' varchar(255) NOT NULL, 
    'content' text NOT NULL,
    'creation_date' datetime NOT NULL,
    PRIMARY KEY ('ID'),
    UNIQUE KEY 'ID' ('ID')
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0 ;

CREATE TABLE 'likes' (
  'post_id' int(11) NOT NULL,
  'restaurant_rif' varchar(255) NOT NULL,
  'user_mail' varchar(255) NOT NULL,
  'liked_date' datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

我应该或多或少得到这样的答案:

+----------+------------+------------------+
| Post ID  | Contenido  |  Amount of Likes |
+----------+------------+------------------+
|     1    | Test 1     |       12         |
+----------+------------+------------------+
|     2    | Test 2     |       50         |
+----------+------------+------------------+
|     1    | Test 3     |       120        |
+----------+------------+------------------+

最佳答案

select *, (select count(*) from likes l where l.post_id = p.id) as num_likes
from posts p
where restaurant_rif = '<rif>' 

关于mysql - 带计数的 SQL 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32809486/

相关文章:

mysql - 艺术家专辑轨道的实体关系

php - 只是想知道为什么这不起作用,我想将数据从提交表单插入到数据库

php - 我可以仅通过数据中的字母和数字查询列吗?比如 preg_replace

sql - ISNUMERIC ('07213E71' ) = 真?

php - 根据第一个选择框 (PHP) 使用 SQL 中的内容填充第二个选择框

java - 如何将 Trigger 生成的值赋给 Hibernate ValueObject?

mysql - SQL如何统计上个月的新用户数?

sql - 我需要使用 join fetch,但它会导致 "query specified join fetching, but the owner of the fetched association was not present in the select list"

mysql - 从 MySQL date_format 中的 %m 和 %d 中删除前导零

c - 使用定时器进行套接字编程