Sql server 从两个表中获取数据的SQL查询
假设我有一张表,如下所示:Sql server 从两个表中获取数据的SQL查询,sql-server,Sql Server,假设我有一张表,如下所示: Create table tblEvents ( Eventid int primary key, EventName nvarchar(20), UserId nvarchar(5) ) 第二个表如下: Create table tblUsers ( Id int primary key, UserId nvarchar(5), Username nvarchar(20), ) 我怎样才能得到一个新的表(或结果),它包含了来自这两者的结果。我只关心tblEven
Create table tblEvents
(
Eventid int primary key,
EventName nvarchar(20),
UserId nvarchar(5)
)
第二个表如下:
Create table tblUsers
(
Id int primary key,
UserId nvarchar(5),
Username nvarchar(20),
)
我怎样才能得到一个新的表(或结果),它包含了来自这两者的结果。我只关心tblEvents,它应该只显示来自tblUsers的用户名,其中Userid(of tblEvents)等于Userid(of tblUsers)。因此,最终输出应采用以下格式:
EventId | EventName | UserId | UserName
--------|-----------|--------|---------
| | |
其中用户名来自tblUsers。
我无法更改任何表上的主键
编辑:UserId不是INT,不能用作主键外键查询:
select
e.Eventid,
e.EventName,
e.UserId,
u.Username
from tblEvents e
join tblUsers u on e.UserId = u.UserId
如果要使用该表创建新表,请执行以下操作:
select
e.Eventid,
e.EventName,
e.UserId,
u.Username
into new_table
from tblEvents e
join tblUsers u on e.UserId = u.UserId
您可以阅读有关使用
到中创建表的更多信息,查看SQL中的内部联接,然后尝试下面的查询
SELECT tblEvents.Eventid, tblEvents.EventName, tblEvents.UserId ,tblUsers. UserName
FROM tblEvents INNER JOIN tblUsers ON tblEvents.UserId=tblUsers.UserId
这会奏效的。使用简单的内部联接
SELECT te.EventId , te.EventName , te.UserId , tu.UserName
FROM tblEvents te
INNER JOIN tblUsers tu ON te.UserId=te.UserId
非常基本的问题。寻找内部连接
令人震惊的基本SQL问题。在使用StackOverflow提问此类问题之前,您至少应该学习SQL的基础知识。@MikeGledhill:那么RTFM问题现在已经脱离主题了?我认为简单的否决票就足够了。。。