【发布时间】:2017-12-07 11:36:55
【问题描述】:
我有一个问题,我需要用 JOIN 和 GROUP BY 用 Mysql 找到 MIN() 和 MAX()。
我有 3 张桌子:
- 父母(parent_id)
- 孩子(child_id, parent_id)
- 价格(price_id, child_id, price)
一个父母可以有多个孩子,一个孩子只有一个价格。
这是我获取父母所有价格的查询:
select child.parent_id , price.child_id , price.price
from parent
inner join child on child.parent_id = parent.id
inner join price on price.child_id = child.id
我想找到父母的最低价格。但我不只想要价格,我想要 price_id !
你能帮我做这个查询来找到每个父母的 min() 价格的 price_id 吗?
这里是数据样本:
parent1 : parent_id=1
parent2 : parent_id=2
child1 : child_id=1 , parent_id=1
child2 : child_id=2 , parent_id=1
child3 : child_id=3 , parent_id=1
child4 : child_id=4 , parent_id=2
child5 : child_id=5 , parent_id=2
child6 : child_id=6 , parent_id=2
price1 : price_id=1 , child_id=1, price=15
price2 : price_id=2 , child_id=2, price=5
price3 : price_id=3 , child_id=3, price=10
price4 : price_id=4 , child_id=4, price=10
price5 : price_id=5 , child_id=5, price=20
price6 : price_id=6 , child_id=6, price=30
我想为 parent1 找到他孩子的最低价格的 id,结果是:price_id=2
我想为 parent2 找到他孩子的最低价格的 id,结果是:price_id=4
我想为 parent1 找到他孩子的 MAX price 的 id,结果是:price_id=1
我想为 parent2 找到他孩子的 MAX 价格的 id,结果是:price_id=6
谢谢!
【问题讨论】:
-
更新您的问题并添加适当的数据样本和预期结果
-
.. 我没有看到数据样本..
-
我用数据样本编辑了 ma 问题