我正在尝试从SQL Server中的两个表中检索数据。
以下是我的两张桌子。
Registration
:
用户名姓名年龄 阿伦20 bb Balu 15 ss Sai 25
Marks
:
dt用户标记 2014-02-10 aa 50 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
请帮忙
提前致谢。
答案 0 :(得分:1)
尝试此查询!
Select r.Name,r.Username,m.Date,m.Marks from Registration r left join Marks m on r.Username=m.userid
答案 1 :(得分: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
希望这有帮助。
答案 2 :(得分:0)
我认为这就是你所期待的......
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));
答案 3 :(得分:0)
您需要执行类似
的RIGHT JOIN查询SELECT Reg.UserName, Reg.Name, Marks.dt, Marks.mark
FROM Reg
RIGHT JOIN Marks
ON Reg.Username=Marks.userid;
这样做是根据两个表之间的公共字段(即您的用户ID)匹配两个表中的所有记录。由于您可以在标记表上为每个用户ID创建多个标记记录,因此我们需要RIGHT联接,它将从该表中获取所有匹配的条目。
如果您需要一对一的关系,请使用INNER JOIN,否则请使用LEFT或RIGHT查询
答案 4 :(得分:0)
你可以试试这个:
select R.Name,R.Username, M.dt, M.Marks from Registration R inner join
Marks M on R.Username = M.Username
希望这会对你有帮助......
答案 5 :(得分: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