0

我是一个相当称职的 SQL 程序员,但我的技能仍然非常适用于简单的 INSERT、SELECT、UPDATE 语句,偶尔会加入 LIKE 等。我目前正在尝试做的事情要复杂得多。这是场景。

  1. 我有三张桌子。
  2. 表 1,*users*通过用户 ID 标识用户,uid。用户可以拥有一个或多个子账号
  3. 表 2*accounts*记录了每个用户的子账户,其中包括uidsid列,其中uid是表中定义的*users*列。
  4. 表 3*data*当前将一些数据存储在与特定子账户sid关联的数据列中。

我刚刚意识到,没有特别的理由阻止用户跨子账户使用这些数据。没问题 - 我可以将我的数据子集搜索 SQL 更改为使用uid。但是,考虑到此类搜索的频率*data*.

为此,我需要编写一些智能 SQL,从*accounts*表中获取 uid、sid 对,并使用该信息更新数据表中新创建的 uid 列。我不得不承认这超出了我对 SQL 的了解。

我应该提一下,使用这些数据的系统现在已经投入生产,并且有数百名用户,因此无法选择像他们不存在一样行事。我认为不是很相关,但我应该提到uidsid是字母数字字符串,两列都被索引。

我将非常感谢这里任何能够提供帮助的人。

4

1 回答 1

0

Mysql 可以根据连接和读取您的架构进行更新,这就是我要做的......

UPDATE accounts a, data d
set d.uid=a.uid
where a.sid=d.sid
and d.uid is NULL
于 2013-06-07T12:58:52.633 回答