| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		tokezmax
 
 
  註冊時間: 2005-04-12 文章: 3
 
  第 1 樓
  | 
		
			
				 發表於: 星期二 四月 12, 2005 4:56 pm    文章主題: SQL語法問題 …真是深奧… | 
				     | 
			 
			
				
  | 
			 
			
				此問題已經花了我四小時了= =~
 
希望來到貴寶地能遇貴人~~(跪拜~)
 
 
進主題吧~
 
問題是這樣子的,我有兩個資料庫,資料結構都一樣~
 
 
=====宣告=====
 
 
A資料庫內的TABLE  在此簡稱 A.TABLE
 
 
B資料庫內的TABLE  在此簡稱 B.TABLE
 
 
=============
 
 
我想要將 A.TABLE 的資料拷貝到B.TABLE
 
但如果A.TABLE要COPY的主鍵資料 有和 B.TABLE 主鍵資料內容一樣的話,就不進行COPY
 
 
小弟自己的SQL語法如下:
 
 
以下三句是確定可以將A資料庫的 A.TABLE 資料 COPY到 B資料庫的B.TABLE。
 
 
/==========================
 
                     "Insert Into B.TABLE "
 
                " Select * From A.TABLE"
 
                " In "A資料庫路徑" 
 
/==========================
 
 
接下來就是條件事要怎麼加了~苦腦丫= =
 
 
                  WHERE EXISTS ( 
 
                  Select * From B.TABLE
 
                  EXCEPT CORRESPONDING (主鍵ID) 
 
                  SELECT * FROM A.TABLE 
 
                  In "A資料庫路徑"
 
                
 
這樣說不知道清楚不楚~~~
 
要注意的一點是,我是要將兩個不同的資料庫但結構一樣的TABLE 結合 ,然後將主鍵值一樣的欄位過瀘掉。 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		garfield Site Admin
  
  註冊時間: 2003-01-30 文章: 2160
 
  第 2 樓
  | 
		
			
				 發表於: 星期二 四月 12, 2005 9:04 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				用VFP寫成程式比較簡單, 要把複雜的運算式簡化成一行指令那須再多花點時間來將"各種程式語法片段分開測試,再試著合在一行". _________________ 利用>>搜尋<<的功能會比問的還要快得到答案. | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		Chris Lee
 
 
  註冊時間: 2004-03-23 文章: 32
 
  第 3 樓
  | 
		
			
				 發表於: 星期二 四月 12, 2005 11:15 pm    文章主題: Re: SQL語法問題 …真是深奧… | 
				     | 
			 
			
				
  | 
			 
			
				[quote="tokezmax"]此問題已經花了我四小時了= =~
 
希望來到貴寶地能遇貴人~~(跪拜~)
 
 
進主題吧~
 
問題是這樣子的,我有兩個資料庫,資料結構都一樣~
 
 
=====宣告=====
 
 
A資料庫內的TABLE  在此簡稱 A.TABLE
 
 
B資料庫內的TABLE  在此簡稱 B.TABLE
 
 
=============
 
 
我想要將 A.TABLE 的資料拷貝到B.TABLE
 
但如果A.TABLE要COPY的主鍵資料 有和 B.TABLE 主鍵資料內容一樣的話,就不進行COPY
 
 
小弟自己的SQL語法如下:
 
 
以下三句是確定可以將A資料庫的 A.TABLE 資料 COPY到 B資料庫的B.TABLE。
 
 
/==========================
 
                     "Insert Into B.TABLE "
 
                " Select * From A.TABLE"
 
                " In "A資料庫路徑" 
 
/==========================
 
 
接下來就是條件事要怎麼加了~苦腦丫= =
 
 
                  WHERE EXISTS ( 
 
                  Select * From B.TABLE
 
                  EXCEPT CORRESPONDING (主鍵ID) 
 
                  SELECT * FROM A.TABLE 
 
                  In "A資料庫路徑"
 
                
 
這樣說不知道清楚不楚~~~
 
要注意的一點是,我是要將兩個不同的資料庫但結構一樣的TABLE 結合 ,然後將主鍵值一樣的欄位過瀘掉。[/quote]
 
 
not in 不行嗎? | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 4 樓
  | 
		
			
				 發表於: 星期三 四月 13, 2005 12:15 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				不同的後端或前端,SQL 命令不太一樣吧!
 
 
我的第一個反應也是
 
INSERT INTO B
 
SELECT * FROM A
 
 WHERE KEYVALUE NOT IN (SELECT DISTINCT KEYVALUE FROM B)
 
 
這樣子,應該時間花滿久的....  ^^;;; _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		jeff25
 
 
  註冊時間: 2004-10-22 文章: 76 來自: taiwan
  第 5 樓
  | 
		
			
				 發表於: 星期三 四月 13, 2005 9:41 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				兩種作法供參考
 
1. 將 A.TABLE 中有存在 b.table 的資料刪除 
 
    再將 A.TABLE 合併到 B.TABLE
 
2. 將A.TABLE 不存在B.TABLE 的資料 COPY 到一個暫存檔如 C.TABLE
 
   將 C.TABLE 合併到 B.TABLE _________________ jeff | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		tokezmax
 
 
  註冊時間: 2005-04-12 文章: 3
 
  第 6 樓
  | 
		
			
				 發表於: 星期三 四月 13, 2005 9:42 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				謝謝各位大大的熱情回覆…
 
 
小弟對SQL其實不熟。自己翻書努力研究,
 
單字的作用是知道怎麼用,
 
但是…實在不知道條件式要放那裡…
 
真是頭大……後來又一直TRY一直TRY。
 
寫成了這個樣子↓
 
 
INSERT INTO Statistic
 
WHERE (SELECT * FROM Statistic
 
EXCEPT CORRESPONDING [RSN]
 
SELECT * FROM Statistic
 
In DAODatabase1->DatabaseName)
 
 
還是失敗…
 
啊......頭痛丫~
 
 
 
在次謝謝↓這句讓我受益良多~謝謝~我在來試試。
 
INSERT INTO B 
 
SELECT * FROM A 
 
WHERE KEYVALUE NOT IN (SELECT DISTINCT KEYVALUE FROM B) | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		tokezmax
 
 
  註冊時間: 2005-04-12 文章: 3
 
  第 7 樓
  | 
		
			
				 發表於: 星期三 四月 13, 2005 5:11 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				OK. 終於搞定了…雖然可能對各位大大是個簡單的問題。
 
但是我還是要分享一下我完成後的寫法~
 
如果有寫的不好的地方,請各位大大指點一下~
 
 
"INSERT INTO B.TABLE"
 
" SELECT * From A.TABLE"
 
" In A資料庫路徑"
 
" WHERE A主鍵欄位"
 
" NOT IN (SELECT B主鍵欄位 From B.TABLE)"
 
 
這樣的寫法,就可以
 
將A資料庫指定TABLE下的資料 插入  B資料庫指定TABLE 內 且B資料庫的資料不會插入的資料 蓋掉。
 
注意一點是,TABLE 結構需一樣
 
 
該死,真是有夠麻煩 的一句= =搞了  十二個小時。
 
 
在次謝謝大大指點 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		Chris Lee
 
 
  註冊時間: 2004-03-23 文章: 32
 
  第 8 樓
  | 
		
			
				 發表於: 星期三 四月 13, 2005 9:31 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				[quote="tokezmax"]OK. 終於搞定了…雖然可能對各位大大是個簡單的問題。
 
但是我還是要分享一下我完成後的寫法~
 
如果有寫的不好的地方,請各位大大指點一下~
 
 
"INSERT INTO B.TABLE"
 
" SELECT * From A.TABLE"
 
" In A資料庫路徑"
 
" WHERE A主鍵欄位"
 
" NOT IN (SELECT B主鍵欄位 From B.TABLE)"
 
 
這樣的寫法,就可以
 
將A資料庫指定TABLE下的資料 插入  B資料庫指定TABLE 內 且B資料庫的資料不會插入的資料 蓋掉。
 
注意一點是,TABLE 結構需一樣
 
 
該死,真是有夠麻煩 的一句= =搞了  十二個小時。
 
 
在次謝謝大大指點[/quote]
 
 
雖然問得很簡單,但很有禮貌,也知道問完後要回 Post,為網路少見。給你拍拍手,就...不念你不去查查基本的 SQL 語法了。   :o | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		yoncen
 
  
  註冊時間: 2005-08-29 文章: 35
 
  第 9 樓
  | 
		
			
				 發表於: 星期五 十二月 04, 2009 9:10 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				用exists()方式比in效率高得多。 _________________ 從事企業ERP開發,學會止境,精益求精。 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 10 樓
  | 
		
			
				 發表於: 星期六 十二月 05, 2009 10:42 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				EXIST() ?
 
 
以前說的一樣有效.
 
"不同的後端或前端,SQL 命令不太一樣吧! " _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |