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

如何通过跨表查询获取新用户ID并构建新的用户订单关联表

SQL 实现方案

你需要通过两次JOIN串联三张表的关联关系即可得到目标结果,相关语句如下:

直接查询得到目标结果

SELECT 
  un.id AS user_id,
  uo.order_id
FROM USER_ORDERS_OLD uo
INNER JOIN USERS_OLD uold ON uo.user_id = uold.id
INNER JOIN USERS_NEW un ON uold.email = un.email;

如果需要保留匹配不到新用户ID的订单记录,把INNER JOIN改为LEFT JOIN即可,匹配失败的user_id会返回NULL

直接创建新表USER_ORDERS_NEW

CREATE TABLE USER_ORDERS_NEW AS
SELECT 
  un.id AS user_id,
  uo.order_id
FROM USER_ORDERS_OLD uo
INNER JOIN USERS_OLD uold ON uo.user_id = uold.id
INNER JOIN USERS_NEW un ON uold.email = un.email;

向已存在的USER_ORDERS_NEW插入数据

INSERT INTO USER_ORDERS_NEW (user_id, order_id)
SELECT 
  un.id AS user_id,
  uo.order_id
FROM USER_ORDERS_OLD uo
INNER JOIN USERS_OLD uold ON uo.user_id = uold.id
INNER JOIN USERS_NEW un ON uold.email = un.email;
电子表格实现方案

用Excel/WPS表格的VLOOKUP函数即可快速实现,步骤如下:

  • 把USER_ORDERS_OLD表的旧用户ID、订单ID两列粘贴到空白工作表的A、B列
  • 在C列第一行数据单元格输入公式=VLOOKUP(A2, USERS_OLD表!A:B, 2, 0),下拉填充得到每个旧用户ID对应的邮箱
  • 在D列第一行数据单元格输入公式=VLOOKUP(C2, USERS_NEW表!B:A, 2, 0),下拉填充得到每个邮箱对应的新用户ID
  • 最终整理D列(新用户ID)和B列(订单ID)即可得到目标表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:15:05