sql >> データベース >  >> RDS >> Mysql

別のテーブルに存在しないレコードを1つのテーブルから検索します

    これを行うにはいくつかの異なる方法がありますが、クエリオプティマイザーの性能と、2つのテーブルの相対的なサイズに応じて、効率が異なります。

    これは最短のステートメントであり、電話帳が非常に短い場合は最も速くなる可能性があります:

    SELECT  *
    FROM    Call
    WHERE   phone_number NOT IN (SELECT phone_number FROM Phone_book)
    

    または(Alterlife に感​​謝します )

    SELECT *
    FROM   Call
    WHERE  NOT EXISTS
      (SELECT *
       FROM   Phone_book
       WHERE  Phone_book.phone_number = Call.phone_number)
    

    または(WOPRのおかげで)

    SELECT * 
    FROM   Call
    LEFT OUTER JOIN Phone_Book
      ON (Call.phone_number = Phone_book.phone_number)
      WHERE Phone_book.phone_number IS NULL
    

    (他の人が言っているように、それを無視すると、通常は'*ではなく、必要な列だけを選択するのが最善です。 ')



    1. MySQLの出力ファイルへのエクスポート:CSVエスケープ文字

    2. ストアドプロシージャのテーブルのリストを取得するにはどうすればよいですか?

    3. Php-PHPのインストールにWordPressに必要なMySQL拡張機能がないようです

    4. Kubernetes AWSでのJenkinsの使用、パート1