Mysql
 sql >> база данни >  >> RDS >> Mysql

Изключете записи, ако правилната таблица съвпада

Можете да използвате NOT EXISTS

SELECT a.id, a.name
FROM A
WHERE NOT EXISTS
(
    SELECT 1 FROM B
    WHERE b.A = a.id AND b.cond = 'X'
)

Въпреки това, винаги забравям, че MySql е единственият(?) rdbms, който има проблеми с оптимизиране на EXISTS /NOT EXISTS . Така че е малко по-ефективно да използвате LEFT JOIN подход.

http://explainextended.com/2009/09/18/not-in-vs-not-exists-vs-left-join-is-null-mysql/

В MS SQL-Server е по-добре да използвате NOT EXISTS .

http://sqlperformance.com/2012/12 /t-sql-queries/left-anti-semi-join



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Намерете комбинации, които отговарят на различни критерии

  2. Как да транспонирате MYSQL db в PHP

  3. Динамично създаване на PHP обект въз основа на низ

  4. Създайте таблица по време на изпълнение в Ruby on Rails

  5. Въпрос за начинаещ за mySQL и PHP, за да избегнете свързване с DB на всяка страница