sql >> Database teknologi >  >> RDS >> PostgreSQL

hvordan man forhindrer dubletter med indre joinforespørgsel (Postgres)

I dette tilfælde er det muligt at anvende distinct før join muligvis gøre den mere effektiv:

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

Bemærk, hvordan du bruger alias til tabelnavnene for at gøre forespørgslen klarere. Også derefter in operatør er meget handy. Brugen af ​​dobbelte anførselstegn med disse identifikatorer er ikke nødvendig.



  1. Opdel strenge ved hjælp af mysql

  2. SQL-forespørgsel 6 grader af adskillelse til netværksanalyse

  3. Bruger Oracle kortslutningsevaluering?

  4. Hvordan slippe af med NUL-tegn i Oracle-databasen?