You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 5.5.9子查询问题:如何通过已知entry获取关联数据

解决同表关联查询问题

我来帮你搞定这个同表关联查询的需求~你想要通过已知的entry值,直接获取它的difficulty_entry_1指向的那条记录的完整信息,原来的SQL语句存在几个小问题:比如SELECT子句里的子查询不能返回多个字段,语法上也有多余的分号。

最适合这种同表关联场景的方法是自连接(SELF JOIN),下面是修正后的SQL语句:

-- 先设置目标entry变量,也可以直接在WHERE里写死数值
SET @bossID = 26687;
SELECT ct2.*
FROM creature_template ct1
INNER JOIN creature_template ct2 
  ON ct1.difficulty_entry_1 = ct2.entry
WHERE ct1.entry = @bossID;

语句解释:

  • 给表起两个别名ct1和ct2,分别代表「原始记录」和「关联的难度记录」
  • 通过ct1.difficulty_entry_1 = ct2.entry建立关联,找到原始记录指向的那条数据
  • 最后查询ct2.*就能得到关联记录的所有字段,完全符合你想要的结果

针对你的示例:

如果原表中有:

entrydifficulty_entry_1
2668712345
123450

执行上面的SQL后,会直接返回entry=12345的完整记录:

entrydifficulty_entry_1...(其他字段)
123450...

额外提示:

如果要兼容difficulty_entry_1为0或者不存在对应记录的情况,可以把INNER JOIN改成LEFT JOIN,这样即使没有关联记录,也会返回ct1的信息(ct2的字段会显示为NULL),根据你的实际需求选择即可。

内容的提问来源于stack exchange,提问作者Nightpanda99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 14:12:36