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