2013-04-12 63 views
0

我具有低於如何合併兩個具有不同模式的數據表?

表1

------------------------- 
    ID | Name 
-------------------------- 
1 | JOHN 
2 | GEORGE 
3 | RAGU 
-------------------------- 

表2

---------- 
    ID | AGE 
    ---------- 
    1 | 23 
    2 | 23 
    3 | 22 
    ---------- 

在示出的兩個數據表只想結果作爲這樣的..

結果

------------------------- 
    ID | Name | AGE 
-------------------------- 
1 | JOHN  | 23 
2 | GEORGE | 23 
3 | RAGU  | 22 
-------------------------- 

謝謝..

+0

你在哪裏卡住? – V4Vendetta

+0

表中的數據沒有固有順序。你怎麼知道,'23'是'第一'年齡,'22'是「第三」? – Corak

+0

當使用數據表合併概念我得到了像6行的結果,前3行只包含ID和名稱,接下來的3行只包含年齡.. – ragu

回答

5

你可以看看這個:

static void Main(string[] args) 
{ 
    Program p = new Program(); 
    DataTable dt1= p.Get1(); 
    DataTable dt2 = p.Get2();   
    DataTable dt3 = p.Get3(dt1, dt2); 
} 
public DataTable Get1() 
{ 
    DataTable dt1 = new DataTable(); 
    dt1.Columns.Add("ID"); 
    dt1.Columns.Add("Name"); 
    dt1.Rows.Add("1", "JOHN"); 
    dt1.Rows.Add("2", "GEORGE"); 
    dt1.Rows.Add("3", "RAGU");   
    return dt1; 
} 

public DataTable Get2() 
{ 
    DataTable dt2 = new DataTable(); 
    dt2.Columns.Add("AGE");   
    dt2.Rows.Add("23"); 
    dt2.Rows.Add("23"); 
    dt2.Rows.Add("22"); 
    return dt2; 
} 

public DataTable Get3(DataTable dt1,DataTable dt2) 
{ 
    dt1.Columns.Add("Age"); 
    for (int i = 0; i < dt1.Rows.Count; i++) 
    { 
     dt1.Rows[i]["Age"] = dt2.Rows[i]["Age"]; 
    } 
    return dt1; 
} 
1

您是否聽說過INNER JOIN

基本上,你想要做的是:

SELECT Persons.ID, Persons.Name, Ages.Age 
FROM Persons INNER JOIN Ages ON Persons.ID = Ages.ID 

現在你可以插入到另一個表,如果你想要的。

1

我認爲這是什麼,你可能會尋找

INSERT INTO Result (ID, Name, Age) 
SELECT T1.ID, T1.Name, T2.Age 
FROM 
    Table1 AS T1 
INNER JOIN 
    Table2 AS T2 
ON 
    T1.ID = T2.ID 
ORDER BY 
    T1.ID 
相關問題