title: Select join with all matches
body: <p>Table : </p>
  
  <pre><code>CREATE TABLE product_option
  (
    id bigint NOT NULL,
    option_type character varying(255) NOT NULL,
    value character varying(255) NOT NULL,
    product_id bigint,
    CONSTRAINT product_option_pkey PRIMARY KEY (id ),
    CONSTRAINT fk_product FOREIGN KEY (product_id)
        REFERENCES product (id) MATCH SIMPLE
        ON UPDATE NO ACTION ON DELETE CASCADE
  )
  </code></pre>
  
  <p>A user can search for products that have a list of options.
  i.e. 
  Find products that have these options : </p>
  
  <pre><code>BINDING_SIDE : BOTTOM
  BINDING_SIDE : TOP
  BINDING_TYPE : COIL_BINDING
  </code></pre>
  
  <p>The result should only return the products that have at least these three options. ( they can have more options ) </p>