ホームページ > データベース > mysql チュートリアル > SQL で条件付きフィルタリングを使用して左結合を実行するにはどうすればよいですか?

SQL で条件付きフィルタリングを使用して左結合を実行するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-22 07:52:10
オリジナル
368 人が閲覧しました

How to Perform a Left Join with Conditional Filtering in SQL?

SQL 左結合と条件付きフィルタリング

データベース接続では、特定のフィルター条件を適用しながら複数のテーブルのデータを結合することが必要になることがよくあります。次のシナリオを考えてみましょう:

settings テーブルからデフォルト設定を取得し、必要に応じて、特定のロールの character_settings テーブルからロール固有の設定を取得したいと考えています。ただし、以下のクエリは、ロール設定が特定の値と一致する場合にのみデフォルトを返し、ロール設定が定義されていない場合はデフォルトを無視します。

<code class="language-sql">SELECT `settings`.*, `character_settings`.`value`
FROM (`settings`)
LEFT JOIN `character_settings` 
ON `character_settings`.`setting_id` = `settings`.`id`
WHERE `character_settings`.`character_id` = '1'  </code>
ログイン後にコピー
すべてのデフォルト設定を取得し、利用可能な場合はロール設定を取得するには、フィルタ条件を結合句に移動する必要があります。

<code class="language-sql">SELECT  `settings`.*, `character_settings`.`value`
FROM    `settings`
LEFT JOIN 
       `character_settings` 
ON     `character_settings`.`setting_id` = `settings`.`id`
        AND `character_settings`.`character_id` = '1'  </code>
ログイン後にコピー
結合条件に

句を配置することで、左結合が成功した行のみが結果セットに含まれるように指定します。これにより、ロール固有の設定の可能性を考慮しながら、デフォルト設定を取得できます。 WHERE

以上がSQL で条件付きフィルタリングを使用して左結合を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート