iT邦幫忙

0

詢問SQL問題

最近接觸到用C#連結SQL想詢問:

"兩份相同資料格式的A資料庫與B資料庫"
"在C#程式中已先取出了B的資料成為Datatable"

"而現在用Datatable跟A做資料比對"
"比對完成後 將A裡面與Datatable相同的資料全部刪除不同的留著"

想詢問這段功能SQL指令該怎麼撰寫完全沒有頭緒
上網查到的大多是本身資料庫裡面是否重複
而不是做比對的

不好意思 或許改另一個方向
有一個A資料庫 我要將裡面最前面1000筆資料 做匯出 Excel的動作
然後將匯出的那1000筆從A資料庫中刪除掉
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
做工仔人!
iT邦大師 1 級 ‧ 2016-08-30 08:28:05
最佳解答

delete TABLEA from TABLEA A LEFT JOIN Datatable B ON A.a1=B.a1
where A.a1 is not null

不好意思 我B的資料是 C#裡面宣告成的物件DataTable tableB 雖然內容是 Select的方式從資料庫撈出來 但是它是不存在於資料庫裡的 table名稱 這樣名稱好像都會找不到 是否有其他方式處理

個人認為有幾個方式處理:

  1. 寫個C#的WHILE 或FOR 迴圈下去刪.(在.CS中處理)
    類似參考程式:
        for (int i = 0; i < cbo.Items.Count; i++)  
       {  
           if (cbo.Items[i].Value.Trim().Equals(Value.Trim()))  
           {  
               cbo.SelectedIndex = i;  
               if (Disable) { cbo.Enabled = false; }  
               break;  
           }  
       }
    		```
    
  2. 利用 PROCEDURES(預存程序) 的方式處理
0
sourgrapes
iT邦新手 5 級 ‧ 2016-08-31 09:22:04

把A、B都有的資料從A Table刪除
在MySQL 測試是OK的

delete from country_a
where exists( select * from country_b b where b.code = country_a.code);

不好意思 我B的資料是 C#裡面宣告成的物件DataTable tableB 雖然內容是 Select的方式從資料庫撈出來 但是它是不存在於資料庫裡的 table名稱 這樣名稱好像都會找不到 是否有其他方式處理

C#/images/emoticon/emoticon16.gif

抱歉我能力不足
/images/emoticon/emoticon52.gif

我要發表回答

立即登入回答