Sto cercando di capire come creare una query per filtrare alcuni risultati basati su un join interno.come impedire i duplicati con la query di inner join (Postgres)
Considerate i seguenti dati:
formulation_batch
-----
id project_id name
1 1 F1.1
2 1 F1.2
3 1 F1.3
4 1 F1.all
formulation_batch_component
-----
id formulation_batch_id component_id
1 1 1
2 2 2
3 3 3
4 4 1
5 4 2
6 4 3
7 4 4
Vorrei selezionare tutti i record con un formulation_batch project_id di 1, ed ha un formulation_batch_component con una component_id di 1 o 2. Quindi eseguire la seguente query:
SELECT "formulation_batch".*
FROM "formulation_batch"
INNER JOIN "formulation_batch_component"
ON "formulation_batch"."id" = "formulation_batch_component"."formulationBatch_id"
WHERE "formulation_batch"."project_id" = 1
AND (("formulation_batch_component"."component_id" = 2
OR "formulation_batch_component"."component_id" = 1))
Tuttavia, questo restituisce una voce duplicata:
1;"F1.1"
2;"F1.2"
4;"F1.all"
4;"F1.all"
Esiste un modo per modificare questa query in modo tale da ottenere solo i record unici di formulazione_batch che corrispondono ai criteri?
EG:
1;"F1.1"
2;"F1.2"
4;"F1.all"
Grazie per il vostro tempo!
Grazie, ho dimenticato distinto. Non è il massimo delle prestazioni, ma è ancora meglio che filtrarlo a livello di software. – drkstr1