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

MySQL中是否支持仅将一张表的单列数据匹配合并到另一张表?

这个需求完全可以实现,用左连接配合COALESCE函数就能满足要求,具体方案如下:

实现逻辑

  • 以wordlist全表为基础,保证返回所有单词的记录
  • 先从user_word表筛选出当前登录用户(这里是edward)的所有记录,再和wordlist按wordID关联
  • memorize字段优先取用户个性化的记录值,没有对应记录时用wordlist的默认值

可用SQL语句

SELECT 
    w.wordID,
    w.`char`,
    COALESCE(uw.memorize, w.memorize) AS memorize
FROM wordlist w
LEFT JOIN (
    SELECT wordID, memorize 
    FROM user_word 
    WHERE userID = 'edward'
) uw ON w.wordID = uw.wordID
ORDER BY w.wordID ASC;

说明

  1. 子查询先过滤指定用户的记录,比直接关联全表再筛选的执行效率更高,适合多用户场景,切换用户只需要修改子查询里的userID参数即可
  2. COALESCE函数会按顺序返回第一个非NULL的参数值:如果用户有对应单词的学习记录,就返回用户标记的memorize值,没有就返回wordlist的默认值0,完全匹配你的预期输出
  3. 注意char是MySQL内置关键字,所以在SQL中用反引号包裹避免语法报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:12:01