假设我在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 :(得分:0)
您可能想要使用某种查询:
insert into table3 (number)
select
t1.number
from abc t1
inner join xyz t2
on t1.number = t2.number
答案 1 :(得分: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
答案 2 :(得分:0)
也许是这样的:
INSERT INTO table3(number)
SELECT
number
FROM
xyz
WHERE NOT EXISTS
(
SELECT
NULL
FROM
abc
WHERE
abc.number=xyz.number
)