sql >> Base de Datos >  >> RDS >> Mysql

SQL JOIN para encontrar registros que no tienen un registro coincidente con un valor específico

Cree un índice en sa_signatures (type, order_id) .

Esto no es necesario para convertir la consulta en un LEFT JOIN a menos que sa_signatures permite nulos en order_id . Con el índice, el NOT IN actuará también. Sin embargo, en caso de que tengas curiosidad:

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

Debe elegir un NOT NULL columna de sa_signatures para el WHERE cláusula para un buen desempeño.