如何合并两个具有不同模式的数据表?

时间:2013-04-12 09:25:57

标签: c# sql datatable dataset

我有两个数据表,如下所示

表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
--------------------------

谢谢..

3 个答案:

答案 0 :(得分: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 :(得分:1)

你听说过INNER JOIN吗?

基本上,你想要做的是:

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

现在您可以根据需要将其插入到另一个表中。

答案 2 :(得分: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