我有两个表,publishers 和 titles。
我想知道出版商每本书有多少种,比如历史,少儿等等。
这是两个表:
CREATE TABLE publishers
(
pub_id CHAR(3) NOT NULL,
pub_name VARCHAR(20) NOT NULL,
city VARCHAR(15) NOT NULL,
state CHAR(2) ,
country VARCHAR(15) NOT NULL,
CONSTRAINT pk_publishers PRIMARY KEY (pub_id)
)ENGINE = InnoDB;
CREATE TABLE titles
(
title_id CHAR(3) NOT NULL,
title_name VARCHAR(40) NOT NULL,
type VARCHAR(10) ,
pub_id CHAR(3) NOT NULL,
pages INTEGER ,
price DECIMAL(5,2) ,
sales INTEGER ,
pubdate DATE ,
contract SMALLINT NOT NULL,
CONSTRAINT pk_titles PRIMARY KEY (title_id)
)ENGINE = InnoDB;
到目前为止,我所能做的就是找出书籍类型(流派)的总数。
SELECT COUNT(DISTINCT type)
FROM publishers AS a
INNER JOIN titles AS p
ON a.pub_id = p.pub_id;
我该怎么做呢?
最佳答案
您需要使用 Group By 进行查询,如下所示
SELECT a.pub_id, a.pub_name, p.type, COUNT(DISTINCT p.type)
FROM publishers AS a
INNER JOIN titles AS p ON a.pub_id = p.pub_id
GROUP BY a.pub_id, a.pub_name, p.type
为 pub_id 和 pub_name 添加 group by 以避免两个具有相同名称的发布者被视为一个发布者
关于mysql - SQL - 使用表格找出出版商每本书有多少种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36585839/