【问题标题】:SQL: Select rows with a column value that occurs at least two times?SQL:选择列值至少出现两次的行?
【发布时间】:2018-03-26 05:32:40
【问题描述】:

这是我正在使用的数据库:https://ufile.io/72wph

Academics 数据库的关系架构如下:

DEPARTMENT( deptnum , descrip, instname, deptname, state, postcode)

ACADEMIC( acnum , deptnum*, famname, givename, initials, title)

PAPER( panum , title)

AUTHOR( panum*, acnum* )

FIELD( fieldnum , id, title)

INTEREST( fieldnum*, acnum* , descrip)

Academics 数据库的一些注释:

● 一个学术部门属于一个机构( instname ),通常有很多学者。一位学者只为一个部门工作。

● 研究论文 ( PAPER ) 通常由多位学者撰写,当然,一位学者通常会撰写多篇论文 (AUTHOR )。

● 一个研究领域 (FIELD) 通常会吸引许多学者,而一个学者可能对多个研究领域感兴趣 (INTEREST)。

有了这些信息,我必须列出至少有两位作者的论文的 PANUM。

我不确定是否应该将 AUTHOR 表与 ACADEMIC 表连接起来,或者是否有办法只使用 AUTHOR 表?

【问题讨论】:

    标签: mysql sql database database-design


    【解决方案1】:

    除非我遗漏了什么,否则我认为您可以仅通过对 AUTHOR 表的单个查询来回答您的问题:

    SELECT panum
    FROM AUTHOR
    GROUP BY panum
    HAVING COUNT(*) >= 2;
    

    不需要加入学术表,因为该表只包含每个作者的元数据,而与论文无关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多