MySQL Left Join + Min

标签 mysql group-by left-join greatest-n-per-group min

看似简单的 MySQL 问题,但我以前从未这样做过..

我有两个表,项目和价格,具有一对多的关系。

Items Table
id, name

Prices Table
id, item_id, price

在哪里

prices.item_id = items.id

到目前为止我所拥有的:

SELECT items.id, items.name, MIN(prices.price)
FROM items
LEFT JOIN prices ON items.id = prices.item_id
GROUP BY items.id

我如何也返回该最低价格的相应价格.id?谢谢!

最佳答案

如果有多个最低价格的价格记录,这将返回 Items 中记录的多个记录:

select items.id, items.name, prices.price, prices.id
from items
left join prices on (
    items.id = prices.item_id 
    and prices.price = (
        select min(price)
        from prices
        where item_id = items.id
    )
);

关于MySQL Left Join + Min,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7588142/

相关文章:

sql - 为什么这个左外连接查询不能正常工作?

mysql - OpenShift:MySQL PDO 'connection refused',在本地工作

mysql - 如何让 phpmyadmin 使用 MySQL 服务器而不是默认的 wampserver64

sql - Postgres 按查询分组

SQL获取每月/每周的数据总和?

MySQL - 添加 WHERE 子句时 LEFT JOIN 失败

php - 使用 Apache 2 和 PHP 5.5 安装 MySQLi

mysql:从不同列填充列中的数据

mysql - 按两列 mysql 分组的列计数总和

r - 使用 stringdist_join 连接多列