Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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
SQL Server:相同的列但不同的值_Sql_Sql Server - Fatal编程技术网

SQL Server:相同的列但不同的值

SQL Server:相同的列但不同的值,sql,sql-server,Sql,Sql Server,我有两个表:用户和消息 我试着写一个合适的精选句子,现在看起来确实是这样的: SELECT Messages.Message_id, Messages.From_id, Users.Username, Messages.To_id, Users.Username, Messages.Date, Messages.Subject, Messages.Text, Messages.Picture FROM Messages INNER JOIN Users

我有两个表:
用户
消息

我试着写一个合适的精选句子,现在看起来确实是这样的:

SELECT
  Messages.Message_id,
  Messages.From_id,
  Users.Username,
  Messages.To_id,
  Users.Username,
  Messages.Date,
  Messages.Subject,
  Messages.Text,
  Messages.Picture
FROM
  Messages
INNER JOIN
  Users
ON Messages.From_id = Users.User_id
AND Messages.To_id = Users.User_id
我担心重复两次的
用户。用户名
,我不确定这是否会显示正确的结果


请帮我创建一个合适的select语句。

它不是不同的值。没有定义连接,因此它将下降到一个连接条件,输出两次值。完成。如果有什么区别的话,代码评审会将其标记为明显错误-您可能希望向用户显示from和to,在这种情况下,您需要:

  • Join两次(即两个内部Join语句)
  • 两个联接都有其他名称别名(即作为用户\u到和作为用户\u从和
  • 显然,从两个别名而不是表名中获取名称
尝试下面的查询

SELECT
Messages.Message_id,
Messages.From_id,
FromUser.Username,
Messages.To_id,
ToUser.Username,
Messages.Date,
Messages.Subject,
Messages.Text,
Messages.Picture
FROM
Messages
INNER JOIN
Users FromUser on Messages.From_id = FromUser.User_Id
INNER JOIN
Users ToUser on Messages.To_id = ToUser.User_Id

这是正确的吗?:``选择Messages.Message\u id,Messages.From\u id,UsersFrom.Username,Messages.To\u id,UsersTo.Username,Messages.Date,Messages.Subject,Messages.Text,Messages.Picture From Messages内部将用户作为用户从消息中加入。From\u id=UsersFrom.User\u id内部将用户作为用户从消息中加入。To\u id=UsersTo.User\u id``Un幸运的是,我现在无法测试它,我只需要知道我的想法是否正确。准确地说。我通常从不使用隐式连接-其中有太多的危险-并且总是定义连接条件。