2016-04-23 9 views
1

Ich arbeite mit pgAdminIII (postgreSQL)SQL where-Klausel auf innere Joins

ich die folgenden Tabellen: Buch, Verlag, Orderline, ShopOrder.

Mit der folgenden SQL:

SELECT 
    Book.BookID AS "Book ID" 
    ,Book.Title AS "Book title" 
    ,SUM(OrderLine.quantity) AS "Number Ordered" 
    ,ShopOrder.OrderDate AS "Order Date" 
FROM (((Book 

INNER JOIN OrderLine 
ON Book.BookID = OrderLine.BookID) 

INNER JOIN Publisher 
ON Book.PublisherID = Publisher.PublisherID) 


INNER JOIN ShopOrder 
ON OrderLine.ShopOrderID = ShopOrder.ShopOrderID) 

GROUP BY ShopOrder.OrderDate, Name, Book.BookID 

. 

Ich möchte dies verwenden, um mit einem (WHERE Publisher.Name = "Smith Smitheson")

Ich weiß nicht, wo es zu setzen, oder wenn im es richtig zu machen, jede möglichen Hilfe bitte?

Antwort

3
... 
INNER JOIN Publisher ON Book.PublisherID = Publisher.PublisherID AND Publisher.Name = 'Smith Smitheson') 
... 

oder

SELECT Book.BookID AS "Book ID" ,Book.Title AS "Book title" 
,SUM(OrderLine.quantity) AS "Number Ordered" ,ShopOrder.OrderDate AS 
"Order Date" FROM Book 
INNER JOIN OrderLine ON Book.BookID = OrderLine.BookID 
INNER JOIN Publisher ON Book.PublisherID = Publisher.PublisherID 
INNER JOIN ShopOrder ON OrderLine.ShopOrderID = ShopOrder.ShopOrderID 
WHERE Publisher.Name = 'Smith Smitheson' 
GROUP BY ShopOrder.OrderDate, Name, Book.BookID