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

MySQL查询:为指定ID关联的缺失记录填充NULL值

解决用户-课程全组合查询需求的SQL调整方案

要实现每个用户对应wp_posts中ID为1至5的所有条目,同时在无活动记录时填充activity_started和activity_completed为NULL,你需要用交叉连接(CROSS JOIN)生成全量用户-课程组合,再通过左连接(LEFT JOIN)关联活动表,具体SQL如下:

SELECT
    u.*,
    p.*,
    l.activity_started,
    l.activity_completed
FROM
    wp_users u
-- 生成所有用户与目标帖子的全组合
CROSS JOIN (
    SELECT * FROM wp_posts WHERE ID BETWEEN 1 AND 5
) p
-- 左连接活动表,保留全组合,无匹配则返回NULL
LEFT JOIN wp_learndash_user_activity l
    ON u.ID = l.user_id  -- 假设活动表的用户ID字段为user_id,需根据实际表结构调整
    AND p.ID = l.post_id; -- 假设活动表的帖子/课程ID字段为post_id,需根据实际表结构调整

关键逻辑说明:

  • CROSS JOIN会将wp_users中的每一条用户记录,与子查询中筛选出的ID1-5的帖子记录进行全匹配,生成所有可能的用户-课程组合,这是实现全量展示的核心。
  • LEFT JOIN确保即使某个用户没有对应课程的活动记录,也会保留该用户-课程组合,同时活动相关字段自动填充为NULL。
  • 注意:如果你的wp_learndash_user_activity表中关联用户和课程的字段名不是user_id和post_id,请替换为实际字段名(比如可能是user_id和course_id)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:10:26