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

EXISTSとJOINおよびEXISTS句の使用

    EXISTS ブール値JOINを返すために使用されます 他のテーブル全体を返します

    EXISTS サブクエリが結果を返すかどうかをテストするためにのみ使用され、結果が返されるとすぐに短絡します。 JOIN リレーションがある別のテーブルの追加フィールドと組み合わせて結果セットを拡張するために使用されます。

    あなたの例では、クエリは意味的に同等です。

    通常、EXISTSを使用します いつ:

    • 関連するテーブルからデータを返す必要はありません
    • 関連するテーブルに重複があります(JOIN 値が繰り返されると、行が重複する可能性があります)
    • 存在を確認したい(LEFT OUTER JOIN...NULLの代わりに使用 状態)

    適切なインデックスがある場合、ほとんどの場合、EXISTS JOINと同じように機能します 。例外は非常に複雑なサブクエリで、通常はEXISTSを使用する方が高速です。 。

    JOINの場合 キーはインデックスに登録されていないため、EXISTSを使用する方が速い場合があります ただし、特定の状況をテストする必要があります。

    JOIN 構文は読みやすく、通常も明確です。



    1. MariaDBEnterpriseBackupとClusterControlBackupManagementの比較

    2. SQLServerで複数の行のテキストを単一のテキスト文字列に連結する方法

    3. MySQLGaleraClusterとGlusterFSを使用した高可用性Nextcloudのデプロイ

    4. PostgreSQL:PostgreSQLですべてのテーブルのOWNERを同時に変更します