首页 > 解决方案 > 什么将是 SQL 选择语句来识别被列为关系 A 的每本书的作者的个人

问题描述

架构:

BID VAR-CHAR(40) NOT NULL,
AID VAR-CHAR(40) NOT NULL,

CONSTRAINT PK PRIMARY KEY (BID, AID)

实例:

bid    | aid  
-------+--------
Book 1 | Ada  
Book 1 | Bob  
Book 1 | Carl  
Book 2 | Ada  
Book 2 | Bob  
Book 2 | Carl 
Book 2 | Dave  
Book 3 | Carl  

使用 PostgreSQL,我想找到在数据库模式中写过每一本书的作者。

输出实例是

|aid|  
-----
|Carl|

标签: sql

解决方案


我在想你可以做的是退还援助并按援助分组,但只有在出价的不同计数等于 3 时才退还援助(因为最多有 3 本书,而且必须是全部 3 本书) . 试试这个,让我知道它是否有效?

SELECT aid
FROM bid
GROUP BY aid
HAVING COUNT(DISTINCT(bid) = 3)

推荐阅读