PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

comment éviter les doublons avec une requête de jointure interne (Postgres)

Dans ce cas il est possible d'appliquer le distinct avant le join le rendant éventuellement plus performant :

select fb.* 
from
    formulation_batch fb
    inner join
    (
        select distinct formulationbatch_id
        from formulation_batch_component
        where component_id in (1, 2)
    ) fbc on fb.id = fbc.formulationbatch_id 
where fb.project_id = 1

Remarquez comment utiliser un alias pour les noms de table pour rendre la requête plus claire. Aussi alors in l'opérateur est très pratique. L'utilisation de guillemets doubles avec ces identifiants n'est pas nécessaire.