ホームページ >データベース >mysql チュートリアル >LEFT JOIN を使用してデフォルト設定と文字固有の設定を取得する方法

LEFT JOIN を使用してデフォルト設定と文字固有の設定を取得する方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-22 07:47:08839ブラウズ

How to Retrieve Default and Character-Specific Settings Using a LEFT JOIN?

LEFT JOIN を使用したデフォルト設定および文字固有の設定の効率的な取得

この例では、LEFT JOIN を使用してデフォルト設定と、該当する場合は文字固有のオーバーライドを取得する方法を示します。 元のクエリは、デフォルトを除く、キャラクター固有の設定のみを返しました。

両方を取得する鍵は、WHERE 句を正しく配置することです。結合のをフィルタリングする代わりに、文字 ID フィルタを結合条件に組み込みます:

<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>

この改訂されたクエリは、LEFT JOIN テーブルと settings テーブルの間で character_settings を実行します。 ON 句は、一致する setting_id のみが結合されることを保証し、さらに結合を character_id が '1' であるレコードに制限します。 重要なのは、LEFT JOIN に一致する行がない場合でも、settings テーブルのすべての行が結果に含まれることを character_settings が保証していることです。

結果のデータセットは次のようになります:

<code class="language-php">array(
    0 => array('somekey' => 'keyname', 'value' => 'thevalue'), // Default + Character-specific (if exists)
    1 => array('somekey2' => 'keyname2', 'value' => null), // Default only
    2 => array('somekey3' => 'keyname3', 'value' => null)  // Default only
);</code>
null 以外の

がある行は、デフォルト設定と文字固有の設定の両方を示します。 value 列の NULL 値は、その特定のキーに対してデフォルト設定のみが存在することを示します。value

以上がLEFT JOIN を使用してデフォルト設定と文字固有の設定を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。