sql >> Databasteknik >  >> RDS >> Mysql

SQL JOIN för att hitta poster som inte har en matchande post med ett specifikt värde

Skapa ett index på sa_signatures (type, order_id) .

Detta är inte nödvändigt för att konvertera frågan till en LEFT JOIN såvida inte sa_signatures tillåter nollvärden i order_id . Med indexet, NOT IN kommer att prestera också. Men bara om du är nyfiken:

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

Du bör välja en NOT NULL kolumn från sa_signatures för WHERE klausul för att fungera bra.



  1. Hur man uppdaterar flera kolumner i mysql med php

  2. MySQL och CASE WHEN med en rad värden

  3. Oracle:hur får man procent av totalt genom en fråga?

  4. MySQL-återställning på MyISAM-motorn