选择包含用户的产品

时间:2012-10-18 16:57:55

标签: mysql sql

我已经很长时间没有使用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

你有一些提示吗?

由于

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

如果您将查询作为降序排列,则最后添加的数据将首先显示

ORDER BY date DESC