差分セットを見つけるための Mysql メソッド: 1. not contains を使用して 2 つのテーブルの差分セットをフィルタリングします; 2. LEFT JOIN 接続の後に生成された空のフィールド値を通じて 2 つのテーブルの差分セットをフィルタリングします。
この記事の動作環境: Windows 7 システム、mysql バージョン 8.0、Dell G3 コンピューター。
#mysql で差分セットを見つける方法は?
mysql でフィールド数が異なる 2 つのテーブルで、一貫性のないデータを持つレコードをクエリする方法 一般に、NOT EXISTS (非存在句) または LEFT JOIN 左 (右) 接続を使用して空のフィールド値を生成し、2 つのテーブル間の差異をフィルター処理できます1、NOT EXISTS
not selected 比較フィールドにインデックスが存在する場合、その操作効率は非常に高くなりますが、インデックスのない大規模なデータテーブル上で実行すると、操作効率が非常に悪くなります。この場合、使用を避ける必要があります。SELECT * FROM smd_employee t1 WHERE NOT EXISTS ( SELECT 1 FROM asd_user_account t2 WHERE t2.u_phone = t1.employee_phone );
2. LEFT JOIN
左 (右) 結合を使用して差分セットを見つけます。2 つのテーブルを実装する必要があるため、結合はデカルト効果につながり、出力セット内のレコード行の数が増加する可能性があります。1 対 1 または 1 対多でない場合は、多対接続する前に多くの状況を多対 1 に変換しないと、出力レコード セットが正しくない可能性があります。SELECT a.* FROM smd_employee a LEFT JOIN asd_user_account b ON b.u_phone = a.employee_phone WHERE b.u_phone IS NULL;差分セットを見つけるには 2 つの方法があります。インデックスが利用可能な場合、存在しない場合の効率は左結合よりも高くなります。逆に、左結合の方が効率的です。
[関連する推奨事項:
mysql ビデオ チュートリアル ]
以上がmysqlで設定された差分を見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。