2017-08-12 348 views
0

我有以下三個表:Product,User和Purchased。在INNER JOIN SQL查詢中使用ORDER BY

產品包含:

  • 的唯一標識符(的productID)
  • 的名稱(產品名稱)
  • 甲價格 (productprice)

用戶包含:

  • 唯一標識符(用戶ID)

購買包含:

  • 兩個標識符標記爲私鑰的productID和用戶ID
  • 記錄(creationdate的日期)

我的查詢應該返回一個列表自1月1日起在零售商的網站上購買獨特產品,最昂貴的產品首先退回。

我的查詢:

SELECT Product.productID, Product.productname, Purchased.creationdate 
FROM Product 
INNER JOIN Purchased 
ON Product.productID = Purchased.productID; 
ORDER BY Product.productprice DESC; 
+0

什麼是你的問題? – philipxy

回答

0

如果你只是想要的產品清單,我會建議exists而不是join

select p.* 
from products p 
where exists (select 1 
       from purchased pu 
       where pu.productId = p.productId and 
        year(pu.creationdate) = year(now()) 
      ) 
order by price desc;