2014-02-11 51 views
-3

我试图从SQL Server中的两个表中检索数据。从SQL Server中的两个表中检索数据

以下是我的两个表格。

  1. Registration

    用户名名称年龄 AA阿伦20 BB巴鲁15 SS西25

  2. Marks

    dt的用户标识标记 2014年2月10日50 AA 2014-02-11 aa 55 2014-02-09 bb 45

我需要显示如下所示的选择。

输出:

Name Username Date  Marks 
Arun aa  2014-02-11  55 
Balu bb  2014-02-09  45 

请帮

在此先感谢。

+2

所以这里有什么问题吗?当然,你不是简单地在这里发布你的问题,并期望别人来做你的工作。我确信你尝试过自己,学习过例子,阅读文档,并且已经有一些解决方案可以工作。现在,如果你发布了,我们可以帮助你。 – arkascha

+0

你只想要最大标记还是要列出所有标记? – charlesw

+0

这是一个简单的SQL Join,是学习SQL时遇到的第一个概念之一。 这是基本的东西,一个简单的谷歌搜索会给你几百个高品质的教程来理解它。 它真的不属于这里 – BigM

回答

0

能否请您试试这个:

select r.name 
    , r.username 
    , max(m.marks) 
    from Registration r 
    join marks m 
    on r.username=m.username 
group by 
     m.username 
    , m.marks 
    , r.name 

希望这有助于。

+0

我需要显示名称注册表和最大日期,userid,标记从第二个表中的最大值和组按用户名。 – user2772568

0

我assumig这是什么ü希望...

select substr(reg.username,4,length(reg.username)) as Name, 
     min(substr(reg.username,1,2)) as Username, 
     max(marks.dt) as Date, 
     max(marks.mark) as Marks 
     from registration reg, marks marks 
     where marks.userid = substr(reg.username,1,2) 
group by substr(reg.username,4,length(reg.username)); 
0

您需要执行右连接查询类似

SELECT Reg.UserName, Reg.Name, Marks.dt, Marks.mark 
FROM Reg 
RIGHT JOIN Marks 
ON Reg.Username=Marks.userid; 

这样做是它的所有记录从符合您两个表格基于两者之间的共同领域(即您的用户ID)。由于您的标记表上的每个用户标识可以有多个标记记录,因此我们需要RIGHT连接,它会从该表中选取所有匹配的条目。

如果您需要一对一的关系,使用INNER JOIN与其他向左或向右走查询

1

尝试此查询!

Select r.Name,r.Username,m.Date,m.Marks from Registration r left join Marks m on r.Username=m.userid 
0

你可以试试这个:

select R.Name,R.Username, M.dt, M.Marks from Registration R inner join 
Marks M on R.Username = M.Username 

希望这将帮助你...

0

请您尝试一下

select r.Username,r.Name,m.dt as 'Date',m.mark as 'Marks' from Registration r join Marks m on r.Username= m.userid 
相关问题