我已经很长时间没有使用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
你有一些提示吗?
由于
答案 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