Tableau 1
. . | C1 | T1 | P5 | C1 | T1 | P5 . .
Tableau 2
------------------------------------------ | Customer_ID | Template_ID | Product_ID ------------------------------------------ | C1 | T1 | P1 | C1 | T1 | P5 | C1 | T2 | P10 | C1 | T2 | P45 . .
Résultat attendu de la requête de jointure:
--------------------- | Template_ID | Product_ID --------------------- | T1 | P1 | | T1 | P5 | | T1 | P5 | | T2 | P10 | | T2 | P45 |
Pour un modèle, je souhaite obtenir uniquement le Product_ID unique comme ci-dessus. Actuellement, ma requête renvoie P5 deux fois comme,
| Customer_ID | Template_ID --------------------- | C1 | T1 | | C1 | T2 | ---------------------
Comment puis-je gérer cela au niveau de la requête?
4 Réponses :
utilisez un
select distinct t1.*,t2.productid from table1 t1 join table2 t2 on t1.Template_ID =t2.Template_ID
distinct
@SyAu créer un violon sans texte dbfiddle.uk/…
Utilisez DISTINCT pour éliminer les doublons. Il ne s'applique pas uniquement à la première colonne, mais à la ligne entière.
Par exemple:
select distinct t1.customer_id, t1.template_id, t2.product_id from t1 join t2 on t2.template_id = t1.template_id
Il vous suffit de GROUP BY le champ que vous voulez être unique, donc Product_ID:
SELECT Customer_ID, Template_ID, Product_ID FROM table1 JOIN table2 using ( Template_ID ) GROUP BY Product_ID;
Veuillez essayer ceci.
SELECT
DISTINCT A.Customer_ID ,A.Template_ID ,B.Product_ID
FROM
table1 AS A
INNER JOIN table2 AS B
ON A.Template_ID = B.Template_ID
Quelle est la clé primaire de votre
Table2?