0

我有一个名为的表user_info,其中包含独特的 id一般信息,如title, firstname, lastname,number等。

我有另一个useralias有两列的表;useridaliasid

此刻我select * from user_info where timestamp > 'a timestamp'

user_info考虑到. _ useralias_useridtimestamp

除了我想userid用这些额外记录的别名 id 替换之外,但返回其余的详细信息,就好像有该user_info记录的精确副本一样,除了具有不同的 id。

4

1 回答 1

1

如果您只想要别名而不是原始用户 ID,那么简单的连接就可以满足您的需求:

select ua.aliasid, <all columns from user that you want>
from user u join
     useralias ua
     on u.userid = ua.userid

如果您需要用户 ID 和别名,则需要扩充您要加入的表:

select ua.aliasid, <all columns from user that you want>
from user u join
     (select userid, aliasid
      from ((select userid, aliasid
             from useralias ua
            )
            union all
            (select userid, userid as aliasid
             from user
            )
           ) t
     ) ua
     on u.userid = ua.userid

该查询创建了一个用户 ID 和别名 ID 对的列表,并添加了所有现有的用户 ID。加入后,您将获得原始记录。您也可以使用通过连接连接的两个单独查询来执行此操作。

于 2012-06-02T13:53:25.563 回答