sql >> Database teknologi >  >> RDS >> Mysql

Vælg * fra tabel1, der ikke findes i tabel2 med betinget

Brug af LEFT JOIN/IS NULL:

   SELECT t.*
     FROM TABLE_LIST t
LEFT JOIN TABLE_LOG tl ON tl.jid = t.jid
    WHERE tl.jid IS NULL

Bruger NOT IN:

SELECT t.*
  FROM TABLE_LIST t
 WHERE t.jid NOT IN (SELECT tl.jid
                       FROM TABLE_LOG tl
                   GROUP BY tl.jid)

Bruger NOT EXISTS:

SELECT t.*
  FROM TABLE_LIST t
 WHERE NOT EXISTS(SELECT NULL
                    FROM TABLE_LOG tl
                   WHERE tl.jid = t.jid)

FYI
LEFT JOIN/IS NULL og NOT IN er ækvivalente i MySQL - de vil udføre det samme, mens NOT EXISTS er langsommere/mindre effektivt. For flere detaljer:http://explainextended.com/2009/09/18/not-in-vs-not-exists-vs-left-join-is-null-mysql/



  1. Send PHP Array via jQuery Ajax

  2. Sådan uploader og downloader du filer PHP og MySQL

  3. Rollback en forpligtet transaktion

  4. Send ArrayList fra Android til php MySQL