2016-12-09 7 views
-1
Table1Orders 
    OrderID(pk) 
    ISBN(fk) 
    ProductID(fk) 
    OrderDate 
    Total 

Table2Books 
    ISBN(pk) 
    AuthorID(fk) 
    PublisherID(fk) 
    Title 
    PubDate 

Table3Authors 
    AuthorID(pk) 
    AuthorName 
    AuthorAddress 
    AuthorPhone 

Table4Publishers 
    PublisherID(pk) 
    PublisherName 
    PubAddress 
    PubPhone 

ほとんどの書籍を販売した出版社はどのように見えますか?SQLを介してこれらのテーブルをどのように結合しますか?

詳細OrdersBookの間にINNER JOINが必要ですか?

publisherISBNに関連付けるように、返されたデータを並べ替える方法は?あなたは注文に出版社を取得するには、出版社に書籍やブックへの注文に参加場合は、列名に基づいて

+0

最も収益が高い出版社はどれですか?私は何冊の本がどれくらいの本が売られたかを示す数量欄が表示されないので尋ねます。私は合計がドルの金額だと仮定します。 – UnhandledExcepSean

+0

'Orders.publisherID = Books.publisherID'を使用すると、PublisherID、count(*)をPublisherID別にBooksグループから選択すると、すべてのパブリッシャとその数量が販売されます。次に、このクエリを内部クエリとして使用し、maximumカウント。 –

+0

@ GauravSehgal OrdersにはpublisherIDがなく、 'where'句は' group by'句の後ろにあります – EoinS

答えて

1

がテーブルとしてリンクし、その後、出版社がこれを照会し、出版社によるグループと行の数を数える:

select p.PublisherName, count(*) as BooksSold 
from Table1Orders o 
inner join Table2Books b on o.ISBN = b.ISBN 
inner join Table4Publishers p on b.PublisherID = p.PublisherID 
group by p.PublisherName 
order by count(*) desc 

Here is a sample with explicit and implicit joins

関連する問題