求职面试中的SQL任务

时间:2016-09-06 14:14:45

标签: mysql sql sql-server firebird

我最近在一次求职面试中,有一个问题是数据库让我有点问题。

这是一项任务:

您正在为博客服务创建数据库方案,其中包括:

  1. 每个用户都有一个博客

  2. 每个博客都可以有许多不同类别的博客文章

  3. 每个博客都可以有博客文章
  4. 每个帖子可以是多个类别
  5. 问题在哪里:

    1. 编写包含2个帖子最多的用户的选择查询

    2. 获取包含大多数类别的帖子

    3. 我使用数据表创建了数据库 - 用户,博客,BlogCategory,类别,帖子类别和帖子

      BlogCategory和Postcategory是映射blog / post及其类别之间关系的关系表,我认为这是正确的数据库方案。

      关于这些问题,我认为两者都是一些内部联接的复杂查询,但到目前为止我无法解决它们。好吗?

      我现在正在尝试使用firebird db,因为MS SQL服务器在安装ms sql management studio时遇到问题。事情就是你已经拿出了自己的表和列和键。您肯定会需要用户,博客,帖子,类别表,下一张表由您决定

1 个答案:

答案 0 :(得分:1)

至少可以说是模糊不清但很确定这样的事情应该有用。

select top 2 UserName
from Posts
group by UserName
order by count(*) desc

select top 1 PostID
from Posts p
join PostCategories pc on pc.PostID = p.PostID
group by p.PostID
order by count(*) desc