2013-02-27 61 views
0

假设我在SQL “abc”中有一个表,并且其中有一列“number”,此列包含(1,2,3,4)等。比较两个表并更新第三个

在我的第二张表“xyz”我有一个“数字”列,此列包含(1,2,3,4,5,6,7,8,9)。

现在我想比较这两个并在第三个表格中插入相同的数据。 那么我该如何做到这一点?

代码:

string str = "SELECT  Invoice_Details.PGI_ID, PARTY_BOOKING_DETAILS.PGI_ID AS abc "; 
str += "FROM   PARTY_BOOKING_MAIN INNER JOIN "; 
str += " PARTY_BOOKING_DETAILS ON PARTY_BOOKING_MAIN.PBM_ID = PARTY_BOOKING_DETAILS.PBM_ID CROSS JOIN "; 
str += "   Invoice_Details where PARTY_BOOKING_MAIN.PM_ID = 1 "; 

SqlConnection con = new SqlConnection("data source = .; database = ePartyDatabase01; integrated security = true"); 
con.Open(); 
SqlCommand cmd1 = new SqlCommand("update Invoice_Details set [status] = @a", con); 
SqlCommand cmd = new SqlCommand(str, con); 
SqlDataReader dr = cmd.ExecuteReader(); 
while (dr.Read()) 
{ 
    if (dr["PGI_ID"].ToString() == dr["abc"].ToString()) 
    { 

     cmd1.Parameters.AddWithValue("@a", 1); 

    } 
} 

dr.Close(); 
cmd1.ExecuteNonQuery(); 

con.Close(); 
+0

检查线程http://stackoverflow.com/questions/4602083/sql-compare-data-from-two-tables – Madhabendra 2013-02-27 09:53:10

+0

另外检查:http://stackoverflow.com/questions/5990586/mulitply-2-值从2不同的表 – kyndigs 2013-02-27 09:54:25

+0

要清楚,在第三个表中你会插入1,2,3,4? – 2013-02-28 01:24:17

回答

0

你可能想使用某种此查询:

insert into table3 (number) 
select 
    t1.number 
from abc t1 
inner join xyz t2 
    on t1.number = t2.number 
0

我没有测试,但你可能甚至不需要C#,你可以试试这样的:

SELECT xyz.number 
INTO third_table 
FROM (
    SELECT t1.number 
    FROM first_table t1 JOIN second_table t2 ON t1.number = t2.number 
) AS xyz 
0

也许是这样的:

INSERT INTO table3(number) 
SELECT 
    number 
FROM 
    xyz 
WHERE NOT EXISTS 
    (
     SELECT 
      NULL 
     FROM 
      abc 
     WHERE 
      abc.number=xyz.number 
    ) 
相关问题