title: How to select rows, using group by with minimum field values?
body: <p>Today I have posted a question and got a good answer: <a href="https://stackoverflow.com/questions/49490275/stuck-in-building-mysql-query">Stuck in building mysql query</a>.</p>
  
  <p>I though it helped me, but I've discovered that it returns wrong data. So I'm reposting the question here, with an answer I received, as well I will explain the problem why it is not working for me.</p>
  
  <p>Example of data:</p>
  
  <pre><code>id | item_id | user_id | bid_price
  ----------------------------------
   1 |    1    |   11    |     1
   2 |    1    |   12    |     2
   3 |    1    |   13    |     3
   4 |    1    |   14    |     1
   5 |    1    |   15    |     4
   6 |    2    |   16    |     2
   7 |    2    |   17    |     1
   8 |    3    |   18    |     2
   9 |    3    |   19    |     3
  10 |    3    |   18    |     2
  </code></pre>
  
  <p>Expected result:</p>
  
  <pre><code>id | item_id | user_id | bid_price
  ----------------------------------
   1 |    1    |   11    |     1
   7 |    2    |   17    |     1
   8 |    3    |   18    |     2
  </code></pre>
  
  <p>Offered solution:</p>
  
  <pre><code>select m.id, m.item_id, m.user_id, m.bid_price
  from my_table m 
  inner join ( 
  select item_id, min(id) min_id,  min(bid_price) min_price
  from my_table 
  where   item_id IN (1,2,3)
  group by item_id 
  ) t on t.item_id = m.item_id 
     and t.min_price= m.bid_price
     and t.min_id = m.id
  </code></pre>
  
  <p>The problem:
  In the sub query the minimum ID is selected entire the group by (item_id) statement and doesn't reflects according to minimum bid_price.
  In other words, the minimum id is selected not depending on the price field at all. So, in the result I will get minimum price and minimum id of the group, but this will not be the same row! The id can be related to the row with another bet_price value.</p>
  
  <p>How this query can be adjusted? Thank you in advance!</p>