請問Sql 的語法的問題 |
|
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
語法如下
select CS01,CS02,C07,CS03,CS04,CS05,CS07,CS08,CS09 ,
CS10,c.CS03, c.CS04 ,c.CS09
from
cs221 LEFT OUTER JOIN cs222 as c
ON(CS01 = c.CS01),cs51
where
Cs02=c02 and
Cs02 >=:MEM1 and Cs02 <=:MEM2 and
Cs03 >=:DAY1 and Cs03 <=:DAY2 and
Cs01>=:NO1 and Cs01 <=:NO2
order by Cs02
其中 Cs221為 1200筆 Cs222為3500筆 C51為 30000筆
請問為何Query1.open須數分鐘時間才open成功
請問是何原因,如何改善??
資料庫為.dbf
| ||
andersonhsieh
版主 發表:33 回覆:531 積分:439 註冊:2002-06-10 發送簡訊給我 |
|||
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
|||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: OUTER JOIN 一般來說是加乘即A OUTER JOIN B,則筆數會是A筆數*B筆數 @@~~飛翔在天際的精靈~~@@andersonhsieh 兄: 你好像說錯了,Outer Join是以其中一個資料表為準列出資料,不然他那個On的條件是做什麼用的,只有在Join的時候沒有給兩個Table關聯條件才是乘積,你可找資料比較少的Table試試,在資料庫課程中還有其他運算,據書上所言關聯式資料庫的查詢是運用數學的...(忘了名稱{想起來了是集合SET},還有公式可推導)
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 語法如下 select CS01,CS02,C07,CS03,CS04,CS05,CS07,CS08,CS09 , CS10,c.CS03, c.CS04 ,c.CS09 from cs221 LEFT OUTER JOIN cs222 as c ON(CS01 = c.CS01),cs51 where Cs02=c02 and Cs02 >=:MEM1 and Cs02 <=:MEM2 and Cs03 >=:DAY1 and Cs03 <=:DAY2 and Cs01>=:NO1 and Cs01 <=:NO2 order by Cs02 其中 Cs221為 1200筆 Cs222為3500筆 C51為 30000筆 請問為何Query1.open須數分鐘時間才open成功 請問是何原因,如何改善?? 資料庫為.dbf應該如andersonhsieh兄所言,沒有做好Join導致得到的結果是乘積,所以資料量多速度也就慢了,你可列出3個Table的PK,讓網友幫你組看看。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
引言:我不太懂'沒有做好Join'的意思 其欄位有做索引檔 Cs221==>CS01 Cs222==>CS01 CS51 ==>C02 且語法修改為如下,其速度未改善?? select CS01,CS02,C07,CS03,CS04,CS05,CS07,CS08,CS09 , CS10,c.CS03, c.CS04 ,c.CS09 from cs221,cs222,cs51 where Cs02=c02 and CS01 = c.CS01 and Cs02 >=:MEM1 and Cs02 <=:MEM2 and Cs03 >=:DAY1 and Cs03 <=:DAY2 and Cs01>=:NO1 and Cs01 <=:NO2 order by Cs02引言: 語法如下 select CS01,CS02,C07,CS03,CS04,CS05,CS07,CS08,CS09 , CS10,c.CS03, c.CS04 ,c.CS09 from cs221 LEFT OUTER JOIN cs222 as c ON(CS01 = c.CS01),cs51 where Cs02=c02 and Cs02 >=:MEM1 and Cs02 <=:MEM2 and Cs03 >=:DAY1 and Cs03 <=:DAY2 and Cs01>=:NO1 and Cs01 <=:NO2 order by Cs02 其中 Cs221為 1200筆 Cs222為3500筆 C51為 30000筆 請問為何Query1.open須數分鐘時間才open成功 請問是何原因,如何改善?? 資料庫為.dbf應該如andersonhsieh兄所言,沒有做好Join導致得到的結果是乘積,所以資料量多速度也就慢了,你可列出3個Table的PK,讓網友幫你組看看。 |
||
andersonhsieh
版主 發表:33 回覆:531 積分:439 註冊:2002-06-10 發送簡訊給我 |
|||
James
高階會員 發表:10 回覆:290 積分:220 註冊:2002-07-25 發送簡訊給我 |
|||
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
|||
andersonhsieh
版主 發表:33 回覆:531 積分:439 註冊:2002-06-10 發送簡訊給我 |
|||
jieshu
版主 發表:42 回覆:894 積分:745 註冊:2002-04-15 發送簡訊給我 |
引言: 其有key 值join ==>Cs221.CS02=Cs51.C02 Cs221.Cs01=Cs222.Cs01 資料庫是.dbf有沒有Join正確,看資料量即可得知,如果資料筆數正確,還是很慢的話,就要看索引有沒有建好,程式有沒有做其他的控制。
------
人生有夢,逐夢而行 人若為善,福雖未至,禍已遠離 人若為惡,禍雖未至,福已遠離 http://www.taconet.com.tw/jieshu/ |
||
shing.net
中階會員 發表:207 回覆:124 積分:66 註冊:2002-03-16 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |