2017-08-21 4 views
-2

J'ai essayé de parcourir plusieurs pages mais je n'ai pas réussi à trouver le résultat de mon problème. Besoin de solution pour le scénario ci-dessous, en utilisant actuellement la jointure gauche qui a besoin d'une amélioration.Un à plusieurs rejoignent les retours d'une seule ligne dans postgres

par exemple:

Click on the link to see the example

+1

Utilisez-vous MySQL ou Postgresql? Ne pas étiqueter les produits non concernés. – jarlh

+2

Et montrez-nous votre tentative de requête actuelle. – jarlh

+0

Merci @jarlh, j'utilise postgresql et voici la requête de sélection t.PKID comme ID, t.DATA comme DATA, t.U_DATA comme DATA, t.U_VALUE en tant que valeur, de Table_1 t gauche joindre Tableau_2 v sur t.PKID = v.PKID_FROM_TABLE_1 où t.text = 'text'; – Sunil

Répondre

0

Une méthode est l'agrégation conditionnelle:

SELECT PKID_FROM_TABLE_1, 
     MAX(CASE WHEN U_DATA = 'unique0' THEN U_VALUE END) as unique0, 
     MAX(CASE WHEN U_DATA = 'unique1' THEN U_VALUE END) as unique1, 
     MAX(CASE WHEN U_DATA = 'unique2' THEN U_VALUE END) as unique2, 
     MAX(CASE WHEN U_DATA = 'unique3' THEN U_VALUE END) as unique3, 
     MAX(CASE WHEN U_DATA = 'unique4' THEN U_VALUE END) as unique4 
FROM example 
GROUP BY PKID_FROM_TABLE_1; 

Ce standard ANSI SQL et fonctionne dans la plupart des bases de données.