上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
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 文章: 2158
第 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 文章: 4225 來自: 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 文章: 4225 來自: Taipei,Taiwan
第 10 樓
|
發表於: 星期六 十二月 05, 2009 10:42 pm 文章主題: |
|
|
EXIST() ?
以前說的一樣有效.
"不同的後端或前端,SQL 命令不太一樣吧! " _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
|
|