2014-02-11 69 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 
相關問題