sql >> Databasteknik >  >> RDS >> PostgreSQL

hur man förhindrar dubbletter med inre kopplingsfråga (Postgres)

I det här fallet är det möjligt att använda distinct före join möjligen göra den mer presterande:

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

Lägg märke till hur du använder alias för tabellnamnen för att göra frågan tydligare. Också sedan in operatören är mycket händig. Det är inte nödvändigt att använda dubbla citattecken med dessa identifierare.



  1. Vad jag behöver göra för att öppna webbadresser med specialtecken

  2. MySQL och GROUP_CONCAT() maxlängd

  3. Få uppdaterat värde i MySQL istället för berörda rader

  4. Infoga en främmande nyckel med flera värden