【问题标题】:How I can create this view in SQL?如何在 SQL 中创建此视图?
【发布时间】:2014-12-29 02:55:04
【问题描述】:

您好,我有一个社交网络数据库;用户可以提交内容并发表评论。他们可以加入小组。我想发表一些看法:

查看超过 1,000 cmets 的用户

CREATE VIEW userPro
AS SELECT U.nick, C.id 
FROM User.U, Comments.C 
WHERE C.id> 1000

¿¿¿ 我怎么能把'计数'? (我需要 id count > 1000)

查看属于 3 个不同组并发送超过 10 个内容的用户

CREATE VIEW userGroupArt
AS SELECT U.nick, Co.id, G.idg
FROM  User.U, Content.Co, Group.G
WHERE COUNT BY(idg > 3 AND content >10)

我在使用 Count by 时遇到了很多困难,但我阅读了很多文档。你能帮帮我吗?

非常感谢!

【问题讨论】:

  • 您应该在担心计数之前修复您的联接。
  • Comments 中的哪一列与User 相关? ContentGroup 中的哪一列与 User 相关?
  • 如果你把这三个表的结构贴出来会有所帮助。
  • 嗨评论有“idc”和用户“nick”作为主键内容有“id”、组“idg”和用户“nick”

标签: mysql sql count


【解决方案1】:

看来你必须了解更多关于sql having clause的信息

CREATE VIEW userPro
AS SELECT U.nick, C.id 
FROM `User` AS U INNER JOIN Comments AS C ON 
U.id = C.user_id
HAVING COUNT(C.id) > 1000;


CREATE VIEW userGroupArt
AS SELECT U.nick
FROM `User` AS U INNER JOIN Content AS Co ON U.id = Co.user_id 
INNER JOIN  UserGroup AS UG on UG.user_id = U.id
HAVING COUNT(DISTINCT UG.group_id) > 3 AND COUNT(DISTINCT Co.id) > 10

您还需要从第二个视图中明确您想要哪些字段 - 如果您想要一个唯一用户列表,您不能选择用户组或内容的 id,因为用户可以有很多组和内容。

【讨论】:

    猜你喜欢
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    相关资源
    最近更新 更多