1

我已经很长时间没有使用 SQL 了,我需要一些基本查询的帮助。我有以下三个表:

  • users (id, name)
  • products (id, name)
  • owners (userid, productid, date)

用户 A 可以将一种产品卖给用户 B,然后再卖给 A。

现在,我想要每个用户当前拥有的所有产品的列表以及交易日期。

目前,我的查询是这个,但我被旧数据困住了(一个产品与一个用户的第一次关联,而不是最新的):

SELECT users.name, products.name, date
FROM products
     JOIN owners ON products.id = owners.id
     JOIN users ON owners.id = user.id
GROUP BY product.id

你有一些提示吗?

谢谢

4

2 回答 2

1

您需要添加一个子查询,该子查询date为每个productid

SELECT  users.name, 
        products.name, 
        date
FROM    products
        JOIN owners 
            ON products.id = owners.id
        JOIN users 
            ON owners.id = user.id
        JOIN
        (
            SELECT productID, MAX(Date) maxDATE
            FROM owners
            GROUP BY productID
        ) nw ON owners.productID = nw.productID AND
                owners.date = nw.maxDAte
GROUP BY product.id
于 2012-10-18T17:00:56.340 回答
0

如果您以降序获得查询,则最后添加的数据将首先看到

ORDER BY date DESC

于 2012-10-18T17:09:13.717 回答