title: MySQL GROUP_CONCAT duplicate entries
body: <p>I have a problem with my mysql query, since it returns duplicate values for grouped attributes. For example, for the attribute <code>q_id</code> I receive <code>1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2</code> instead of <code>1_-_-_-_-_2</code> as expected. Two things are confusing.</p>
  
  <ol>
  <li>The 1's and 2's get repeated each 8 times. This is probably because there are 8 different <code>keywords</code> associated with the <code>publication</code>.</li>
  <li>The repetition of 1's and 2's occurs 2 times. This is due to 2 different <code>authors</code> associated with the <code>publication</code>.</li>
  </ol>
  
  <p>My query.</p>
  
  <pre><code>SELECT 
      sm_publications.id AS p_id,
      GROUP_CONCAT(sm_authors.last_name SEPARATOR '_-_-_-_-_') AS a_name,
      GROUP_CONCAT(sm_affiliations.display_name SEPARATOR '_-_-_-_-_') AS af_display_name,
      GROUP_CONCAT(sm_keywords.name SEPARATOR '_-_-_-_-_') AS k_name,
      GROUP_CONCAT(sm_query_publications.query_id SEPARATOR '_-_-_-_-_') AS q_id
  FROM sm_publications 
  INNER JOIN sm_publication_authors ON sm_publication_authors.publication_id = sm_publications.id
  INNER JOIN sm_authors ON sm_authors.id = sm_publication_authors.author_id
  LEFT JOIN sm_affiliations ON sm_affiliations.id = sm_authors.affiliation_id
  LEFT JOIN sm_publication_keywords ON sm_publication_keywords.publication_id = sm_publications.id
  LEFT JOIN sm_keywords ON sm_keywords.id = sm_publication_keywords.keyword_id
  INNER JOIN sm_query_publications ON sm_query_publications.publication_id = sm_publications.id 
  WHERE sm_publications.id IN (1,2)  /* Just as example */
  GROUP BY sm_publications.id
  </code></pre>
  
  <p>The relationships can be seen in the following ERM.
  <img src="https://i.stack.imgur.com/Ps67s.png" alt="enter image description here"></p>
  
  <p>There are several characteristics.</p>
  
  <ol>
  <li>One <code>publication</code> has to have <code>authors</code>, but <code>keywords</code> are not mandatory.</li>
  <li>One <code>author</code> can have an <code>affiliation</code>, but it is not mandatory.</li>
  <li>One <code>publication</code> has to refer to one or more <code>queries</code>.</li>
  </ol>
  
  <p><strong>QUESTION</strong>: How can I join all the entities without receiving duplicate attributes? I know, that there is something like <code>GROUP_CONCAT(DISTINCT [...])</code>, but it leads to a problem that if there are two <code>authors</code> from the same <code>affiliation</code>, I only get one <code>affiliation</code> back. But in this case, I would like to receive both <code>affiliations</code>, although they are the same.</p>
  
  <hr>
  
  <p>An example output looks like.</p>
  
  <pre><code>[
  {
      "p_id": 1,
      "a_name": 
      "Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Wang_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen_-_-_-_-_Chen",
      "af_display_name": "North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_North China Electric Power University_-_-_-_-_Huazhong University of Science &amp; Technology_-_-_-_-_Huazhong University of Science &amp; Technology_-_-_-_-_Huazhong University of Science &amp; Technology_-_-_-_-_Huazhong University of Science &amp; Technology_-_-_-_-_Huazhong University of Science &amp; Technology_-_-_-_-_Huazhong University of Scien",
      "k_name": "Genetic Algorithm_-_-_-_-_High Efficiency_-_-_-_-_Improved Genetic Algorithm_-_-_-_-_Rule Extraction_-_-_-_-_Data Mining_-_-_-_-_Explicit Knowledge_-_-_-_-_Artificial Neural Network_-_-_-_-_Neural Network_-_-_-_-_Genetic Algorithm_-_-_-_-_High Efficiency_-_-_-_-_Improved Genetic Algorithm_-_-_-_-_Rule Extraction_-_-_-_-_Data Mining_-_-_-_-_Explicit Knowledge_-_-_-_-_Artificial Neural Network_-_-_-_-_Neural Network_-_-_-_-_Genetic Algorithm_-_-_-_-_High Efficiency_-_-_-_-_Improved Genetic Algorithm_-_-_-_-_Rule Extraction_-_-_-_-_Data Mining_-_-_-_-_Explicit Knowledge_-_-_-_-_Artificial Neural Network_-_-_-_-_Neural Network_-_-_-_-_Genetic Algorithm_-_-_-_-_High Efficiency_-_-_-_-_Improved Genetic Algorithm_-_-_-_-_Rule Extraction_-_-_-_-_Data Mining_-_-_-_-_Explicit Knowledge_-_-_-_-_Artificial Neural Network_-_-_-_-_Neural Network"
      "q_id": "1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2"
  }, 
  {
      "p_id": 2,
      "a_name": "Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai_-_-_-_-_Mihai",
      "af_display_name": "University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti_-_-_-_-_University of Pitesti",
      "k_name": "Web Content Mining_-_-_-_-_Web Structure Mining_-_-_-_-_Web Mining_-_-_-_-_E Commerce_-_-_-_-_Data Preprocessing_-_-_-_-_Cause Related Marketing_-_-_-_-_Web Usage Mining_-_-_-_-_Data Mining_-_-_-_-_Web Content Mining_-_-_-_-_Web Structure Mining_-_-_-_-_Web Mining_-_-_-_-_E Commerce_-_-_-_-_Data Preprocessing_-_-_-_-_Cause Related Marketing_-_-_-_-_Web Usage Mining_-_-_-_-_Data Mining",
      "q_id": "1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_1_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2_-_-_-_-_2"
  }
  </code></pre>
  
  <p>]</p>