Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >如何编写查询,将两个账号及其活动日志合并为一个账号?

如何编写查询,将两个账号及其活动日志合并为一个账号?
EN

Stack Overflow用户
提问于 2008-11-06 13:20:56
回答 3查看 400关注 0票数 0

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

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

这些表格如下所示:

代码语言:javascript
代码运行次数:0
复制
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,
);

发生的情况是,用户最终在两个或多个帐户下学习相同的课程和不同的课程,然后他们希望获取所有课程状态,并将其分配到一个用户帐户下。

是否有人可以提供一个查询,根据用户表中的姓氏和名字字段来确定所有用户帐户,然后只使用用户或用户名字段将所有必要的状态迁移到一个帐户?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-11-06 13:33:50

我当前的一个客户正面临着类似的问题,除了他们有几十个表必须合并。这是使用现实生活中的主键(自然键)的一个原因。你最好的办法就是在这个问题发生之前尽量避免它。

另一件要记住的事情是,两个人可以共享相同的名字和姓氏。也许你不认为这是一个问题,因为你的用户基础,但如果他们已经创建了多个帐户,多久他们才会开始编造假名或创建几乎相同但不完全相同的名称。通常情况下,通过匹配名字来确定两个人是否相同并不是一件好事。

至于你问题的技术部分,这在很大程度上取决于业务规则是什么。如果他们有两次相同的课程,但分数不同,你会使用最高分吗?您如何决定将所有内容链接到哪个用户帐户?无论如何,这可能是一个多步骤的过程。

票数 1
EN

Stack Overflow用户

发布于 2008-11-06 13:29:10

试图通过最后/第一个合并这些数据是一个可怕的想法,你拥有的用户越多,你就越有可能把不正确的条目网格化。您的表中有ID是有原因的,请使用它们。

我看不出你为什么不能说“我想把用户7合并成12”,然后执行以下操作:

代码语言:javascript
代码运行次数:0
复制
UPDATE lessonstatus_rtab SET user_id=12 WHERE user_id=7;
DELETE FROM user_rtab WHERE user_id=7;
票数 3
EN

Stack Overflow用户

发布于 2008-11-06 13:28:38

假设我们将user_id 2合并为1,这样如何?

这会更新在2下完成但在1下没有完成的课程。

代码语言:javascript
代码运行次数:0
复制
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)

任何剩余的东西都是重复的,现在可以删除:

代码语言:javascript
代码运行次数:0
复制
DELETE FROM lessonstatus_rtab
WHERE user_id = 2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/270325

复制
相关文章
Android Button 单击事件
方法一:在XML文件中指定 单击事件函数 <Button             android:id="@+id/button1"             android:layout_width="120dip"             android:layout_height="wrap_content"             android:layout_alignParentLeft="true"             android:layout_below="@+id/textView1
磊哥
2018/05/08
1.7K0
双击事件与单击事件的那些事
合情合理,双击事件也是两次点击事件,所以同时会触发单击事件click和双击事件dblclick。但是需求是单击和双击不同的处理,所以双击的时候不应该触发单击事件。
赤蓝紫
2023/03/16
3.8K0
双击事件与单击事件的那些事
weex-08-单击事件
本节任务 学会组件添加单击事件 标准格式 <text v-on:click="方法名称">点我啊</text> 省略格式 <text @click="方法名称">点我啊</text> 下面我们创建
酷走天涯
2018/09/14
1.7K0
weex-08-单击事件
HarmonyOS实战—实现单击事件流程
1. 什么是事件? 事件就是可以被识别的操作 。就是可以被文本、按钮、图片等组件识别的操作。 常见的事件有:单击、双击、长按、还有触摸事件 。 可以给文本、按钮等添加不同的事件。比如添加了单击事件之后
兮动人
2021/08/20
1.4K0
JavaScript 技巧篇-js增加延迟时间解决单击双击事件冲突,双击事件触发单击事件
js 的单双击事件同时存在会有一个问题:双击事件会同时触发单击事件,两个事件存在冲突。 我们加一个延迟时间就能很好的解决这个问题。
小蓝枣
2020/09/23
6.1K0
HarmonyOS实战—单击事件的四种写法
单击事件的四种写法 [在这里插入图片描述] 1. 自己编写实现类 编写实现类(MyListener)去实现 Component.ClickedListener 接口 在类里面重新下 onClick 方
兮动人
2021/08/20
1.1K0
jQuery 双击事件(dblclick)时,不触发单击事件(click)
在jQuery的事件绑定中,执行双击事件(dblclick)时能触发两次单击事件(click)。即一个标签元素(如div等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblclick)时却会触发两次单击事件(click)。 先看一下点击事件的执行顺序:
飞奔去旅行
2019/06/13
5.3K0
在Windows上以服务方式运行 MSOPenTech/Redis
ServiceStack.Redis 使用教程里提到Redis最好还是部署到Linux下去,Windows只是用来做开发环境,现在这个命题发生改变了,在Windows上也可以部署生产环境的Redis,这都要感谢微软的开放,把Redis在Windows上的环境给我们搞定了,最新的版本已经支持64位了。那么Redis在32位上的存储能力受限于可用的地址空间,也就是3GB。 要在Windows上运行64位Redis ,可以从https://github.com/MSOpenTech/redis 获取一份Redis
张善友
2018/01/29
1.4K0
在Windows上以服务方式运行 MSOPenTech/Redis
以编程方式执行Spark SQL查询的两种实现方式
摘 要 在自定义的程序中编写Spark SQL查询程序 1.通过反射推断Schema package com.itunic.sql import org.apache.spark.sql.SQLContext import org.apache.spark.{SparkConf, SparkContext} /**   * Created by itunic.com on 2017/1/2.   * Spark SQL   * 通过反射推断Schema   * by me:   * 我本沉默是关注互联
天策
2018/06/22
2K0
IOS5开发-UIScrollView添加单击事件的方法
UIScrollView在开发中是一个非常常用的控件,UIScrollView具有水平、垂直滚动和缩放效果。但是尽然没有响应单击事件这个事件。而这个事件在日常的交互中是非常需要的。比如当用于单击或轻触图片的某个位置时,给于一些交互性提示。 下面我将用例子说明一下如何给UIScrollView添加一个单击的响应。 代码如下: 添加一个自定义的UIScrollView,命名:UITouchScrollView UITouchScrollView.h代码如下 #import <Foundation/Foundat
阿新
2018/04/12
1.9K0
以编程方式创建Vue.js组件实例
最近参与了一个Vue.js项目,项目中需要能够以编程方式创建组件。通过编程,意思是使用JavaScript创建和插入组件,而无需在模板中编写任何内容。
前端知否
2020/03/23
7.8K3
VC中CTreeContrl实现响应单击或双击事件
首先需要重写CtreeContrl,然后在.h中添加 afx_msg void OnDblClkTree(NMHDR* pNMHDR, LRESULT* pResult);//双击事件 afx_msg void OnClkTree(NMHDR* pNMHDR, LRESULT* pResult);//单击事件 .h文件 #pragma once ///////////////////////////////////////////////////////////////////////////// //
acoolgiser
2019/01/17
1.8K0
ztree实现根节点单击事件,显示节点信息
这段时间在维护公司的项目,去年做的项目里面有ztree树的例子,想起之前还没有开始写博客,一些知识点也无从找起,要新加一个右击节点事件,折腾了半天,其中也包含了一些知识点,稍稍做了一些demo。
王小婷
2018/09/26
7.2K0
ztree实现根节点单击事件,显示节点信息
js(javascript) onclick与ondblclick 单击与双击事件
js 单击时间为:onclick 双击事件为:ondblclick 如下是一个演示,想必很清楚,复制代码运行一下就懂了:
1_bit
2020/10/23
7K0
Android之按钮点击事件(单击、双击、长按等)
在布局文件中添加按钮点击事件 1、在xml文件中 为 Button 添加android:onclick属性
程思扬
2023/07/24
2.4K0
以 React 的方式思考
React 很棒的一点是创建应用中引导你思考的过程。这篇文档中,我们将通过运用React创建一个产品搜索列表,来引导你熟悉这个思考过程。
fanzhh
2019/08/20
3.5K0
以 React 的方式思考
现在,以编程方式在 Electron 中上传文件,是非常简单的!
本文主要探讨了在 Electron 应用中如何实现上传文件到服务器的功能,同时通过本地代理服务器来获取完整的cookie。首先介绍了在 Electron 应用中如何通过 XHR 上传文件到服务器,然后介绍了如何通过 LocalStorage 将文件保存在本地。最后,本文介绍了一种使用 Electron 创建本地代理服务器,从而获取完整的cookie的方法。
ios122
2017/12/27
5.1K0
现在,以编程方式在 Electron 中上传文件,是非常简单的!
点击加载更多

相似问题

在ios中以编程方式单击UIImageView上的事件

83

以UIImageview的编程方式

27

以编程方式定义单击事件

21

以编程方式创建UIImageView

20

以编程方式触发Android上的单击按钮事件

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档