Mysql 选择有用户的产品

Mysql 选择有用户的产品,mysql,sql,Mysql,Sql,我已经很长时间没有使用SQL了,我需要一些关于基本查询的帮助。我有以下三个表格: 用户(id、名称) 产品(id、名称) 所有者(用户ID、产品ID、日期) 一种产品可以由用户A销售给用户B,然后再销售回A 现在,我想要每个用户当前拥有的所有产品的列表,以及交易日期 目前,我的查询是这一个,但我一直使用旧数据(一个产品与一个用户的第一次关联,而不是最新的关联): 你有什么提示吗 谢谢您需要添加一个子查询,以获取每个productid SELECT users.name,

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

  • 用户(id、名称)
  • 产品(id、名称)
  • 所有者(用户ID、产品ID、日期)
一种产品可以由用户A销售给用户B,然后再销售回A

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

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

你有什么提示吗


谢谢

您需要添加一个子查询,以获取每个
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

您需要添加一个子查询,以获取每个
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

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


orderbydatedesc

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


ORDER BY date DESC

我已经尝试过了,但它只对最终结果有效(在分组依据之后),并且在使用之前出现错误。。因为SQL查询块具有某种顺序。。您不能在“按块分组”之前添加它。。。您必须在GROUP BY语句之后插入它。我已经尝试过了,但它只对最终结果有效(在GROUP BY之后),并且在使用beforeYeah sure mate时会出错。。因为SQL查询块具有某种顺序。。您不能在“按块分组”之前添加它。。。必须将其插入GROUP BY语句之后。。