首页 > 数据库 > mysql教程 > 如何使用 LEFT JOIN 检索默认和特定于字符的设置?

如何使用 LEFT JOIN 检索默认和特定于字符的设置?

Susan Sarandon
发布: 2025-01-22 07:47:08
原创
836 人浏览过

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 JOINsettings 表之间执行 character_settingsON 子句确保仅连接匹配的 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>
登录后复制

具有非空 value 的行表示默认设置和特定于字符的设置。 NULL 列中的 value 值表示该特定键仅存在默认设置。

以上是如何使用 LEFT JOIN 检索默认和特定于字符的设置?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板