0

著者と書籍の 2 つのテーブルがあります。

著者には、属性 authorID、authorName、および authorDOB があります。
authorID は、このテーブルの主キーです。

books テーブルには、bookISBN、authorID などの属性があり、bookISBN
がプライマリ、authorID が外部キーです。

著者名を指定して、その著者によるすべての書籍のカウントを実行するクエリを実行しようとしています。

ここに私が得たものがあります:

SET @ID =
AuthorID
FROM authors
WHERE ('Mark Twain' = AuthorName);

SELECT COUNT(*)
FROM books
WHERE (AuthorID = ID);

どんな助けでも大歓迎です

4

3 に答える 3

0

著者名を指定して、その著者によるすべての書籍のカウントを実行するクエリを実行しようとしています。

試す

select count(1) 
from books b
inner join authors a on a.AuthorID=b.AuthorID
where a.AuthorName='Mark Twain'
于 2013-05-14T07:54:43.017 に答える
0

検索をより頻繁に行うと思われる場合は、関数を使用することもできます。ただのアイデア。

go
create function totalbooksbyauthor (@authorname varchar(20) ) returns table
as return

select a.authorid, a.authorname, COUNT(b.bookname) bookcount
from authors a
inner join books b 
on a.authorID = b.authorID
where a.authorname = @authorname
group by a.authorid, a.authorname

go

select * from totalbooksbyauthor ('Mark Twain')
于 2013-05-14T09:43:26.980 に答える
0

試す:

SELECT a.authorId, a.authorName, count(*)
FROM authors a
INNER JOIN books b ON b.AuthorID=a.AuthorID
WHERE ('Mark Twain' = a.AuthorName)
GROUP BY a.authorId, a.authorName
于 2013-05-14T07:43:25.653 に答える