如何从两个不同的表中复制数据并将获取的记录插入到另一个表中

本文关键字:数据 获取 记录 另一个 插入 复制 两个 | 更新日期: 2023-09-27 17:49:30

我正在尝试在我的表中插入数据,其中有3个字段

 (1) sendReqID type int(PK)
 (2) RequestID type int (FK from table Request)
 (3) DonorID type int (FK table Donor)

我知道如何从一个表复制数据并插入到另一个表,但我想知道如何在表中插入数据,当我们必须从两个不同的表中提取值时。以下是我的代码,我正在尝试和无法插入数据到我的表。

public void Req_SendID()
{
    SqlConnection MySQL = new SqlConnection(ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ToString());
    string copy = "insert into Send_Request(RequestID,DonorID) Select RequestID,DonorID from RequestID and DonorID from Donor where R_City='" + Session["BGroup"] + "' and" + "D_City='" + Session["city"] + "'";
    SqlCommand com = new SqlCommand(copy, MySQL);
    MySQL.Open();
    com.ExecuteNonQuery();
    MySQL.Close();
}

Please Help in advance.

如何从两个不同的表中复制数据并将获取的记录插入到另一个表中

您需要在两个表上进行join

insert into Send_Request(RequestID,DonorID) 
    Select r.RequestID, d.DonorID 
    from RequestID r inner join Donor d ON r.R_City = d.D_City
    where R_City='" + Session["BGroup"] + "' and " + "D_City='" + Session["city"] + "'"

我假设关系如上所述。但是,考虑SQL注入攻击,并考虑参数化您的查询。

EDIT: Using Parameterized Query

var requestCity = Session["BGroup"].ToString();
var donorCity = Session["city"].ToString();
"insert into Send_Request(RequestID,DonorID) 
        Select r.RequestID, d.DonorID 
        from RequestID r inner join Donor d ON r.R_City = d.D_City
        where R_City=@RequestCity and D_City=@DonorCity"
SqlCommand com = new SqlCommand(copy, MySQL);
com.Parameters.Add("@RequestCity", requestCity);
com.Parameters.Add("@DonorCity", donorCity);
....

然而,我刚刚看到你的评论,表之间没有关系,所以上面的实际查询将是不正确的