sql >> Database teknologi >  >> RDS >> Mysql

SQL JOIN For at finde poster, der ikke har en matchende post med en bestemt værdi

Opret et indeks på sa_signatures (type, order_id) .

Dette er ikke nødvendigt for at konvertere forespørgslen til en LEFT JOIN medmindre sa_signatures tillader null i order_id . Med indekset er NOT IN vil også præstere. Men bare hvis du er nysgerrig:

SELECT  o.*
FROM    sa_order o
LEFT JOIN
        sa_signatures s
ON      s.order_id = o.order_id
        AND s.type = 'administrative director'
WHERE   s.type IS NULL

Du bør vælge en NOT NULL kolonne fra sa_signatures for WHERE klausul til at fungere godt.



  1. Optimering af GROUP BY + COUNT DISTINCT på ikke-indlejret jsonb-kolonne

  2. Hvordan kan jeg konvertere et navn til id

  3. Eksekverer MySQL IN-sætningen underforespørgslen flere gange?

  4. Kun første række fra sql-forespørgsel vises