Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何根据另一个表中指定的关系从一个表中获取值?_Mysql_Sql_Sql Server_Database - Fatal编程技术网

Mysql 如何根据另一个表中指定的关系从一个表中获取值?

Mysql 如何根据另一个表中指定的关系从一个表中获取值?,mysql,sql,sql-server,database,Mysql,Sql,Sql Server,Database,我有一个名为user_info的表,它有一个唯一的id和一般信息,如标题、名字、姓氏、号码等 我有另一个表useralias,它有两列;userid和aliasid 此时,我从user_info where timestamp>“a timestamp”中选择* 如何根据userid将alias表中每个useralias记录的每个user_info记录的副本附加到结果中,同时考虑时间戳 除了我想用别名id替换这些额外记录的userid之外,我还想返回其他详细信息,就像用户信息记录有一个完全相同的

我有一个名为user_info的表,它有一个唯一的id和一般信息,如标题、名字、姓氏、号码等

我有另一个表useralias,它有两列;userid和aliasid

此时,我从user_info where timestamp>“a timestamp”中选择*

如何根据userid将alias表中每个useralias记录的每个user_info记录的副本附加到结果中,同时考虑时间戳


除了我想用别名id替换这些额外记录的userid之外,我还想返回其他详细信息,就像用户信息记录有一个完全相同的副本一样,除非使用不同的id。

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

select ua.aliasid, <all columns from user that you want>
from user u join
     useralias ua
     on u.userid = ua.userid
如果同时需要用户标识和别名,则需要扩充要加入的表:

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。当你加入时,你会得到原始记录。您也可以通过联接连接两个单独的查询来完成此操作。

您是否可以编辑答案,以表格形式显示所需的输出?是否显示CREATE TABLE user_info和UserAlias无法理解您的问题。请以表格格式显示所需结果。我无法显示创建表,因为它是microsoft sql,但用户信息表看起来像此用户id、标题、名字、姓氏、电子邮件、电话、手机、照片、时间戳。约翰先生,史密斯,约翰。smith@gmail.com,000000,server.com/john.png,20120105091011 2,夫人,简,史密斯,简。smith@gmail.com,000000,server.com/jane.png,20120105091011用户别名表看起来像这个用户id,别名id 1,3我想要的输出看起来像这个1,mr,john,smith,john。smith@gmail.com,000000,server.com/john.png,20120105091011 2,简夫人,史密斯,简。smith@gmail.com,000000,server.com/jane.png,20120105091011 3,john先生,smith,john。smith@gmail.com,000000,server.com/john.png,20120105091011单次查询是否可以实现此功能??谢谢你,戈登,你是一把枪。完美地解决了我的问题。我想我只是在使用selects和join中的selects时遇到了麻烦。谢谢你,伙计。第二个,因为我需要一个结果