title: Selecting from EAV returns rows twice
body: <p>I have the following tables  </p>
  
  <pre><code>contacts
  ╔═══════════╦═══════════╦══════════╦═══════════╗
  ║ contactId ║ projectId ║ lastName ║   type    ║
  ╠═══════════╬═══════════╬══════════╬═══════════╣
  ║         1 ║         1 ║ Foo      ║ architect ║
  ║         2 ║         1 ║ Owner 1  ║ owner     ║
  ║         3 ║         1 ║ Owner 2  ║ owner     ║
  ╚═══════════╩═══════════╩══════════╩═══════════╝
  
  projectDetails
  ╔═══════════╦═════════════╗
  ║ projectId ║ projectName ║
  ╠═══════════╬═════════════╣
  ║         1 ║ Bar         ║
  ║         2 ║ Fizz        ║
  ╚═══════════╩═════════════╝
  </code></pre>
  
  <p>And I'm trying to select the projectName, as well as all relevant contact people by searching for a contact person's last name. The code I'm using it to do this is </p>
  
  <pre><code>SELECT `det`.`projectName`, `owner`.`lastName` as `ownerLast`, `architect`.`lastName` as `archLast`,
  FROM `projectDetails` as `det`
  LEFT JOIN `contacts` as `owner`
      ON `owner`.`projectId` = `det`.`projectId` AND `owner`.`type`="owner"
  LEFT JOIN `contacts` as `architect`
      ON `architect`.`projectId` = `det`.`projectId` AND `architect`.`type`="architect"
  WHERE `architect`.`lastName` = "Foo"
  </code></pre>
  
  <p>This generates two rows</p>
  
  <pre><code>╔═════════════╦═══════════╦══════════╗
  ║ projectName ║ ownerLast ║ archLast ║
  ╠═════════════╬═══════════╬══════════╣
  ║ Bar         ║ Owner1    ║ Foo      ║
  ║ Bar         ║ Owner2    ║ Foo      ║
  ╚═════════════╩═══════════╩══════════╝
  </code></pre>
  
  <p>Which I suppose makes sense but is not what I'm looking for.
  Is there a way to aggregate results of the same type, for example into something like</p>
  
  <pre><code>╔═════════════╦════════════════╦══════════╗
  ║ projectName ║   ownerLast    ║ archLast ║
  ╠═════════════╬════════════════╬══════════╣
  ║ Bar         ║ Owner1, Owner2 ║ Foo      ║
  ╚═════════════╩════════════════╩══════════╝
  </code></pre>