Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQL JOIN, aby znaleźć rekordy, które nie mają pasującego rekordu o określonej wartości

Utwórz indeks na sa_signatures (type, order_id) .

Nie jest to konieczne, aby przekonwertować zapytanie na LEFT JOIN chyba że sa_signatures zezwala na wartości null w order_id . Z indeksem NOT IN będzie również działać. Jednak na wszelki wypadek:

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

Powinieneś wybrać NOT NULL kolumna z sa_signatures dla WHERE klauzula, aby dobrze działać.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Paginacja na żądanie (zapisy stronicowania na żądanie użytkownika)

  2. MySQL - klucz obcy przy usuwaniu wartości null w polu not null

  3. Zarządzanie kontami użytkowników, role, uprawnienia, uwierzytelnianie PHP i MySQL - Część 3

  4. Tabela zamknięć MySql nie obsługuje zduplikowanych podkategorii dla różnych rodziców

  5. Rejestracja na Facebooku