Question: I have two tables: first for products and second for prices. 

[![enter image description here](https://i.stack.imgur.com/rCg8S.png)](https://i.stack.imgur.com/rCg8S.png)

I need to calculate and display the minimum price from all 5 prices for one product.
I already have query to select five prices and dont know what to do next:

```
SELECT 
    wp_prices.price_one, 
    wp_prices.price_two, 
    wp_prices.price_three, 
    wp_prices.price_four, 
    wp_prices.price_five 
FROM wp_products
JOIN wp_prices ON wp_products.id = wp_prices.product_id
WHERE wp_prices.product_id = ' . $current_product_id . '

```

Answer: 
Of course your data is denormalized, otherwise it would be a simple `MIN(price)` :-)

If you got luck your DBMS supports a LEAST function:

```
LEAST(price_one,price_two,price_three,price_four,price_five),

```

A huge CASE is supported in every DBMS:

```
CASE
  WHEN price_one <= price_two
   AND price_one <= price_three
   AND price_one <= price_four
   AND price_one <= price_five
  THEN price_one

  WHEN price_two <= price_three
   AND price_two <= price_four
   AND price_two <= price_five
  THEN price_two

  WHEN price_three <= price_four
   AND price_three <= price_five
  THEN price_three

  WHEN price_four <= price_five
  THEN price_four

  ELSE price_five
END

```

Hopefully there are no NULLs...
Using `UNION` in MySQL, this could work:

```
SELECT
    price.price_id,
    price.product_id,
    MIN(price.min_price) AS MinPrice
FROM (
        SELECT 
            p.price_id,
            p.product_id,
            p.price_one AS min_price
        FROM test.price AS p
        UNION ALL
        SELECT 
            p.price_id,
            p.product_id,
            p.price_two AS min_price
        FROM test.price AS p
        UNION ALL
        SELECT 
            p.price_id,
            p.product_id,
            p.price_three AS min_price
        FROM test.price AS p
        UNION ALL
        SELECT 
            p.price_id,
            p.product_id,
            p.price_four AS min_price
        FROM test.price AS p
        UNION ALL
        SELECT 
            p.price_id,
            p.product_id,
            p.price_five AS min_price
        FROM test.price AS p 
        ORDER BY price_id) 
AS price
-- WHERE price.price_id = whateverthatyouwanttosearch
GROUP BY price.price_id;

```

**Test:**

```
mysql> SELECT price.price_id, price.product_id, MIN(price.min_price) AS MinPrice FROM ( SELECT  p.price_id, p.product_id, p.price_one AS min_price FROM test.price AS p UNION ALL SELECT  p.price_id, p.product_id, p.price_two AS min_price FROM test.price AS p UNION ALL SELECT  p.price_id, p.product_id, p.price_three AS min_price FROM test.price AS p UNION ALL SELECT  p.price_id, p.product_id, p.price_four AS min_price FROM test.price AS p UNION ALL SELECT  p.price_id, p.product_id, p.price_five AS min_price FROM test.price AS p  ORDER BY price_id)  AS price   GROUP BY price.price_id;
+----------+------------+----------+
| price_id | product_id | MinPrice |
+----------+------------+----------+
|        1 |          3 |    33.00 |
|        2 |          2 |    23.00 |
|        3 |          4 |    23.00 |
|        4 |          5 |    22.00 |
|        5 |          6 |    12.00 |
+----------+------------+----------+
5 rows in set (0.00 sec)

```