Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chọn * từ table1 không tồn tại trong table2 với điều kiện

Sử dụng 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

Sử dụng KHÔNG TRONG:

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

Sử dụng KHÔNG TỒN TẠI:

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 và NOT IN tương đương nhau trong MySQL - chúng sẽ hoạt động giống nhau, trong khi NOT EXISTS chậm hơn / kém hiệu quả hơn. Để biết thêm chi tiết: http://explainextended.com/2009/09/18/not-in-vs-not-exists-vs-left-join-is-null-mysql/



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hệ thống nhắn tin trong php mysql

  2. DETERMINISTIC, NO SQL hoặc READS SQL DATA trong khai báo và ghi nhật ký nhị phân được bật

  3. Các dấu ngoặc kép xung quanh các bảng và cột trong truy vấn MySQL có thực sự cần thiết không?

  4. mysql sau khi chèn trình kích hoạt sẽ cập nhật cột của bảng khác

  5. Sequelize:nhiều mệnh đề where