sql >> Database >  >> RDS >> Mysql

SQL JOIN om records te vinden die geen overeenkomende record met een specifieke waarde hebben

Maak een index op sa_signatures (type, order_id) .

Dit is niet nodig om de zoekopdracht om te zetten in een LEFT JOIN tenzij sa_signatures staat nulls toe in order_id . Met de index, de NOT IN zal ook optreden. Maar voor het geval je nieuwsgierig bent:

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

Kies een NOT NULL kolom van sa_signatures voor de WHERE clausule om goed te presteren.



  1. Geen gegevens verstrekt voor parameters in voorbereide verklaring

  2. Overerving in databaseontwerp

  3. Null-waarden indexeren in PostgreSQL

  4. Normaliseer alle UTF8-tekens in de meest standaardindeling