У меня есть 3 таблицы, как показано ниже:
Таблица продуктов
PID CODE
1 a
2 b
Таблица цен
PrID PID(ID from Product) UMID(ID from UOM) Price
1 1 1 10
2 1 2 5
3 2 1 10
Таблица UOM
UMID UM_NAME UM_RATE
1 BOX 5
2 PC 10
Я хочу получить product
с price
и тот uom
, у которого есть мин UM_RATE
. Например, продукт CODE a
имеет две цены, но цены разные для разных uom
. Чего я хочу достичь, так это
PID CODE PrID Price UM_NAME UM_RATE
1 a 1 10 BOX 5
2 b 3 10 BOX 5
Потому что в коробке есть мин UM_RATE
. Я пробовал следующий запрос,
SELECT product.*, price.*, uom.um_name, MIN(uom.um_rate)
FROM product
LEFT JOIN price ON price.pid = product.pid
LEFT JOIN uom ON price.umid = uom.umid
GROUP BY product.pid
Этот запрос дает мне следующий результат,
PID CODE PrID Price UM_NAME UM_RATE
1 a 1 10 PC 5
2 b 3 10 BOX 5
что не так. потому что UM_RATE
5 относится к UM_NAME
коробке.
Как я могу получить ожидаемый результат?