我有两张桌子:
产品
productID,productName,productPrice
已购买
productID,creationDate
查询 - 返回unique products
自June 2nd
返回后most expensive product
<}返回的first
列表{/ 1}}
为此我写了下面的查询:
SELECT Product.productID,
Product.productName,
Product.productPrice,
Purchased.creationDate
FROM Product
LEFT JOIN Purchased
ON Product.productID = Purchased.productID
ORDER BY Product.productPrice DESC
WHERE Purchased.creationDate > 02 / 06 / 2014
请您确认以上书面查询是否正确或我是否有任何错误。
答案 0 :(得分:1)
试试这个:
SELECT p.productID, p.productName, p.productPrice, pp.creationDate
FROM Product p
LEFT JOIN Purchased pp ON p.productID = pp.productID
WHERE pp.creationDate > '2014-06-02'
ORDER BY p.productPrice DESC;
答案 1 :(得分:1)
使用alises
SELECT pr.productID,
pr.productName,
pr.productPrice,
pu.creationDate
FROM Product pr
LEFT JOIN Purchased pu
ON pr.productID = pu.productID
WHERE pu.creationDate > 02 / 06 / 2014
ORDER BY pr.productPrice DESC
答案 2 :(得分:0)
如果我不需要那些从未购买过的产品(意思是在Pruchased表中没有条目),我会做一个内连接而不是左连接。 Joins Explained
并且顺序应该是最后一件事。
SELECT Product.productID, Product.productName, Product.productPrice, Purchased.creationDate
FROM Product
INNER JOIN Purchased
ON Product.productID=Purchased.productID
WHERE Purchased.creationDate > '2014-06-02'
ORDER BY Product.productPrice DESC