Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

SQL JOIN para encontrar registros que não têm um registro correspondente com um valor específico


Crie um índice em sa_signatures (type, order_id) .

Isso não é necessário para converter a consulta em um LEFT JOIN a menos que sa_signatures permite nulos em order_id . Com o índice, o NOT IN vai funcionar também. No entanto, apenas no caso de você estar curioso:
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

Você deve escolher um NOT NULL coluna de sa_signatures para o WHERE cláusula para um bom desempenho.