データベース接続では、特定のフィルター条件を適用しながら複数のテーブルのデータを結合することが必要になることがよくあります。次のシナリオを考えてみましょう:
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 サイトの他の関連記事を参照してください。