MYSQL:从两个表中获取最小值和分组依据

时间:2020-07-28 07:49:10

标签: mysql join group-by left-join inner-join

我有两个表:

供应商:

+-------+------+---------------+
| supid | prid | supplier_name |
+-------+------+---------------+
|     2 |    2 | Supplier 1    |
|     3 |    2 | Supplier 2    |
|     4 |    2 | Supplier 3    |
+-------+------+---------------+

Supplier_items:

+-----------+------+-------+--------+------------+
| supitemid | prid | supid | itemid | prod_tcost |
+-----------+------+-------+--------+------------+
|         3 |    2 |     2 |      3 |       6200 |
|        4  |    2 |     2 |      4 |        810 |
|         5 |    2 |     3 |      3 |       5900 |
|         6 |    2 |     3 |      4 |        807 |
|         7 |    2 |     4 |      3 |       6680 |
|         8 |    2 |     4 |      4 |        825 |
+-----------+------+-------+--------+------------+

请帮助我获得此结果,以从Suppliers中获取带有provider_name的最小值: (其中prid = 2,按itemid分组)

+--------+---------------+----------------+
| itemid | supplier_name | min(prod_tcost) |
+--------+---------------+----------------+
|      3 | Supplier 2    |           5900 |
|      4 | Supplier 2    |            807 |
+--------+---------------+----------------+

1 个答案:

答案 0 :(得分:0)

您可以加入并聚合:

select si.item_id, s.supplier_name, min(si.prod_tcost) min_prod_tcost
from supplier_items si
inner join suppliers s on s.supid = si.supid
where si.item_id in (3, 4) and si.prid = 2
group by si.item_id, s.supid, s.supplier_name
相关问题