次のように定義された書籍データベースの 2 つのテーブルがあります。
CREATE TABLE Publisher(
PublisherID INT,
Name VARCHAR(50) NOT NULL,
City VARCHAR(30),
StateCode CHAR(2),
constraint publisher_publisherID_pk PRIMARY KEY (publisherID),
constraint publisher_statecode_fk FOREIGN KEY (StateCode) REFERENCES State(StateCode)
);
CREATE TABLE Book(
ISBN CHAR(13),
Title VARCHAR(70) NOT NULL,
Description VARCHAR(100),
Category INT,
Edition CHAR(30),
PublisherID INT NOT NULL,
constraint book_ISBN_pk PRIMARY KEY (ISBN),
constraint book_category_fk FOREIGN KEY (Category) REFERENCES Category(CatID),
constraint book_publisherID_fk FOREIGN KEY (PublisherID) REFERENCES Publisher(PublisherID)
);
出版者の名前に「read」があり、2 冊以上の本を出版している出版社の出版社名と出版された本の数を表示したいと考えています。
これまでのところ、私はこれを持っています:
SELECT Publisher.Name AS 'Publisher Name', COUNT(*) AS 'Book Count'
FROM Book
LEFT JOIN Publisher USING (PublisherID)
WHERE Publisher.Name LIKE '%read%'
GROUP BY Publisher.Name;
しかし、結果を true で返されたすべてのものに制限する方法がわかりません。LIMIT を機能させることができず、ここで使用するのが正しいかどうかさえわかりません。また、「Book Count」(列名はこれでなければなりません) を参照する方法もわかりません。Google で検索すると、行数を制限してのみ返されます (類似の検索語)。
私の現在の出力はこれです:
+----------------------------------+------------+
| Publisher Name | Book Count |
+----------------------------------+------------+
| EZRead Masterpiece Comics | 3 |
| ReadEmandWeep Romance Publishing | 5 |
| ReadMeFirst House of Publishing | 2 |
| ReadMeNext House of Publishing | 2 |
+----------------------------------+------------+
4 rows in set (0.00 sec)
しかし、私はこれが欲しい:
+----------------------------------+------------+
| Publisher Name | Book Count |
+----------------------------------+------------+
| EZRead Masterpiece Comics | 3 |
| ReadEmandWeep Romance Publishing | 5 |
+----------------------------------+------------+
2 rows in set (0.00 sec)
助けてくれてありがとう、うまくいけば私は十分に明確でした。