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がEXISTSを最適化するのに問題がある唯一の(?)rdbmsであることを常に忘れています。 /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. MySQLはどのように列挙を保存しますか?

    2. activerecordとの交差点をクエリ

    3. XAMPPフォルダー内のMySQLデータベーステーブルの正確な場所はどこですか?

    4. mysqlで値6000から開始するようにAUTO_INCREMENTフィールドを設定するにはどうすればよいですか?