sql >> Databáze >  >> RDS >> Mysql

SQL JOIN Chcete-li najít záznamy, které nemají odpovídající záznam se specifickou hodnotou

Vytvořte index na sa_signatures (type, order_id) .

K převodu dotazu na LEFT JOIN to není nutné pokud sa_signatures povoluje hodnoty null v order_id . S indexem NOT IN vystoupí také. Nicméně pro případ, že by vás to zajímalo:

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

Měli byste vybrat NOT NULL sloupec z sa_signatures pro WHERE klauzule k dobrému výkonu.



  1. Spring Boot JPA:Předávání více hodnot pro stejný parametr (JPQL)

  2. Pořadí mazání s omezeními cizího klíče,

  3. MySQL bere věčné „odesílání dat“. Jednoduchý dotaz, spousta dat

  4. Spočítejte výskyty DISTINCT hodnot