  | 
				VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.   
				 | 
			 
		 
		 
	
		| 上一篇主題 :: 下一篇主題   | 
	 
	
	
		| 發表人 | 
		內容 | 
	 
	
		sthuang66
 
 
  註冊時間: 2014-04-27 文章: 178
 
  第 1 樓
  | 
		
			
				 發表於: 星期二 二月 23, 2016 2:03 am    文章主題: 請教SQL語法高手!我下列兩種inner join方法是否結果相同? | 
				     | 
			 
			
				
  | 
			 
			
				A.dbf檔有 ID,NAME,DATE,YEAR四個欄位
 
B.dbf檔有ID,NAME,DATE,CODE,NO五個欄位
 
要用 ID,NAME,DATE三個欄位inner join起來
 
我第一個方法是
 
SELECT A.ID,A.NAME,A.DATE,A.YEAR,B.CODE,B.NO FROM A INNER JOIN B ON A.ID=B.ID AND A.NAME=B.NAME AND A.DATE=B.DATE INTO TABLE Y
 
我第2個方法是(以前剛學使用WIZARD QUERY)
 
先將要JOIN的三個欄位加起來成一個新欄位
 
SELECT ID,NAME,DATE,ID+NAME+DATE AS KEY,YEAR FROM A INTO TABLE A1
 
SELECT ID,NAME,DATE,,ID+NAME+DATE AS KEY,CODE,NO FROM B INTO TABLE B1
 
SELECT A1.ID,A1.NAME,A1.DATE,A1.YEAR,B1.CODE,B1.NO FROM A1 INNER JOIN B1 ON A.KEY=B.KEY INTO TABLE Z
 
--------------------------------------------------------------------------------
 
請教SQL與法高手!我上列兩種inner join方法結果應該是相同吧??
 
邏輯上應該沒有錯吧!應該只是字數多寡罷了!第一個是一行!第二個是三行
 
還是各位高手有更精簡寫法!感謝各位指教 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		syntech
 
 
  註冊時間: 2003-05-16 文章: 4252 來自: Taipei,Taiwan
  第 2 樓
  | 
		
			
				 發表於: 星期二 二月 23, 2016 10:32 am    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				過程不一樣.
 
 
第二種方法必須先建立新的cursor,新的欄位,再用新欄位比較,最後再建立結果cursor.
 
但第一種方式不需要,而且可能還符合查詢最佳化的條件.
 
 
理論上,第一種比較快.耗用的資源也較少.
 
當然,每家的設計不同,運作方式也不一定一樣.
 
 
 
另外欄位相加可能遇到欄位長度不一致的情況.
 
如果table 管理不好,可能遇到join失敗的問題.
 
 
 
以m$ sql server 的工具來看: _________________ 如果公司有下列困擾:
 
1. 找不到便宜,快速,簡易的 生產排程軟體
 
2. 不知道如何快速排定 採購計劃
 
3. 成本抓不準,自己算比軟體算有用
 
4. 想學習系統規劃,想找系統架構的顧問
 
 
請聯絡我們,也許我們幫得上忙 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		sthuang66
 
 
  註冊時間: 2014-04-27 文章: 178
 
  第 3 樓
  | 
		
			
				 發表於: 星期四 二月 25, 2016 8:23 pm    文章主題:  | 
				     | 
			 
			
				
  | 
			 
			
				| 感謝您的答覆!太厲害了!還有圖示 | 
			 
		  | 
	 
	
		| 回頂端 | 
		 | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
  	 
	    
  	   | 
 	
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
  | 
   
  
		 |