title: Mysql select query group concat
body: <p>I have a select query to build and I can't get it work propery. I was hopeing for a few sudggestions from more advanced MySQL developers. 
  So my tables are: </p>
  
  <pre><code> CREATE TABLE IF NOT EXISTS `gv` ( 
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `option_id` int(11) NOT NULL,
  `group_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
  ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
  
  INSERT INTO `gv` (`id`, `option_id`, `group_id`) VALUES
  (1, 1, 1),
  (2, 2, 2),
  (3, 3, 2),
  (4, 4, 3),
  (5, 5, 4),
  (6, 6, 4); 
  
  CREATE TABLE IF NOT EXISTS `igv` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `item_id` int(11) NOT NULL,
   `gv_id` int(11) NOT NULL,
   PRIMARY KEY (`id`)
  ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=9 ;
  
  INSERT INTO `igv` (`id`, `item_id`, `gv_id`) VALUES
  (1, 1, 1),
  (2, 1, 3),
  (3, 2, 1),
  (4, 2, 2),
  (6, 3, 5),
  (7, 4, 2),
  (8, 2, 6); 
  
  CREATE TABLE IF NOT EXISTS `items` (
    `item_id` int(11) NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (`item_id`)
  ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
  
  INSERT INTO `items` (`item_id`) VALUES
  (1),
  (2),
  (3),
  (4),
  (5); 
  </code></pre>
  
  <p>Now I will explain what these tables are doing: </p>
  
  <ol>
  <li><p>gv comes from group_values. A group is like a property for an item. Ex: Color.</p>
  
  <ul>
  <li>each row holds values for a group. Ex: Red ( option_id ) for group Color ( group_id ).</li>
  </ul></li>
  <li><p>igv comes from item group values. An item is the main entity in my project, like a product. </p>
  
  <ul>
  <li>each row holds relations between items and group_values. Ex: An item with Red Color. </li>
  <li>it's linked to the gv table by gv_id ( igv.gv_id = gv.id ).</li>
  </ul></li>
  <li><p>items comes from items :) I have simplified for this example to only one column, item_id.</p></li>
  </ol>
  
  <p>What I need to query: </p>
  
  <p>Well, in my app I have a selected item ( my_item ) ( with 0 or more group values attached ). 
  I need all the items that have exactly the same group_values defined, or no values specified for my_item groups. In php I can extract all the attached groups as an array with ids, also all the group_values. But I found no way to select what I need to from this database. 
  I will appreciate very much any input provided into this massive time-consumming select.</p>
  
  <p>Thanks!</p>
  
  <p>A short sketched-up example. On the left we have the item that is matching all the right items ( separated with comma ).
  <img src="https://i.stack.imgur.com/4o85j.png" alt="enter image description here"></p>