我是一个相当称职的 SQL 程序员,但我的技能仍然非常适用于简单的 INSERT、SELECT、UPDATE 语句,偶尔会加入 LIKE 等。我目前正在尝试做的事情要复杂得多。这是场景。
- 我有三张桌子。
- 表 1,
*users*
通过用户 ID 标识用户,uid。用户可以拥有一个或多个子账号 - 表 2
*accounts*
记录了每个用户的子账户,其中包括uid和sid列,其中uid是表中定义的*users*
列。 - 表 3
*data*
当前将一些数据存储在与特定子账户sid关联的数据列中。
我刚刚意识到,没有特别的理由阻止用户跨子账户使用这些数据。没问题 - 我可以将我的数据子集搜索 SQL 更改为使用uid。但是,考虑到此类搜索的频率,在*data*
.
为此,我需要编写一些智能 SQL,从*accounts*
表中获取 uid、sid 对,并使用该信息更新数据表中新创建的 uid 列。我不得不承认这超出了我对 SQL 的了解。
我应该提一下,使用这些数据的系统现在已经投入生产,并且有数百名用户,因此无法选择像他们不存在一样行事。我认为不是很相关,但我应该提到uid和sid是字母数字字符串,两列都被索引。
我将非常感谢这里任何能够提供帮助的人。