开发者社区> 问答> 正文

如何编写查询以将两个帐户及其活动日志合并为一个?

我们经常有用户创建多个帐户,然后最终多次存储相同的课程活动数据。一旦发现错误,便会与我们联系,以将这些帐户合并为一个可以使用的帐户。

我一直在自残,试图弄清楚如何在MySQL中编写一个查询,该查询将把他们的活动日志合并到一个配置文件中,这样我就可以删除其他配置文件,但是仍然找不到能工作。

这些表如下所示:

CREATE TABLE user_rtab ( user_id int PRIMARY KEY, username varchar, last_name varchar, first_name varchar );

CREATE TABLE lessonstatus_rtab ( lesson_id int, user_id int, accessdate timestamp, score double, ); 发生的结果是,一个用户最终在两个或多个帐户下接受了相同的课程,同时也接受了不同的课程,然后他们希望获得所有课程状态,并希望将其分配给一个用户帐户。

谁能提供一个查询,该查询将基于用户表中的姓氏和名字字段来确定所有用户帐户,然后仅使用user或username字段将所有必要的状态迁移到一个帐户中,从而完成此任务?

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-18 16:00:50 392 0
1 条回答
写回答
取消 提交回答
  • 假设我们将user_id 2合并为1。

    这将更新在2下完成的课程,而不是在1下完成的课程。

    UPDATE lessonstatus_rtab SET user_id = 1 WHERE user_id = 2 AND NOT EXISTS (SELECT * FROM lessonstatus_rtab e WHERE e.lesson_id = lessonstatus_rtab.lesson_id AND user_id = 1) 剩下的所有东西都是重复的,现在可以删除:

    DELETE FROM lessonstatus_rtab WHERE user_id = 2

    2019-11-18 16:01:00
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_赖思超_PostgreSQL10_hash索引的WAL日志修改版final 立即下载
Kubernetes下日志实时采集、存储与计算实践 立即下载
日志数据采集与分析对接 立即下载