首頁 > 資料庫 > mysql教程 > 如何使用 LEFT JOIN 檢索預設和特定於字元的設定?

如何使用 LEFT JOIN 檢索預設和特定於字元的設定?

Susan Sarandon
發布: 2025-01-22 07:47:08
原創
902 人瀏覽過

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

使用 LEFT JOIN 高效檢索預設和特定於字元的設定

此範例示範如何使用 LEFT JOIN 擷取預設設定以及(如果適用)特定於字元的覆蓋。 原始查詢僅傳回特定於字元的設置,不包括預設值。

檢索兩者的關鍵是正確定位 WHERE 子句。不要在連接之後過濾,而是將角色ID過濾器合併到連接條件中:

SELECT settings.*, character_settings.value
FROM settings
LEFT JOIN character_settings 
ON character_settings.setting_id = settings.id
AND character_settings.character_id = '1';
登入後複製

此修改後的查詢在 LEFT JOINsettings 表之間執行 character_settingsON 子句確保僅連接匹配的 setting_id,並進一步將連接限制為 character_id 為「1」的記錄。 至關重要的是,LEFT JOIN 保證 settings 表中的所有行都包含在結果中,即使 character_settings 中沒有匹配的行。

產生的資料集將類似於以下內容:

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
);
登入後複製

具有非空白 value 的行表示預設設定和特定於字元的設定。 NULL 欄位中的 value 值表示該特定鍵僅存在預設設定。

以上是如何使用 LEFT JOIN 檢索預設和特定於字元的設定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板