[SQL ] 多項條件篩選

看板Database (資料庫)作者 (zacaria)時間15年前 (2010/07/20 13:32), 編輯推噓1(102)
留言3則, 3人參與, 最新討論串1/1
我用的軟體是SAS 其中SQL語法與SQL SERVER 相似 想請問這樣的問題要怎樣去寫程式執行時比較快 假設有兩個表A、B A中有欄位 a1、a2、a3、a4、a5、a6a7、a8、a9、a10、...、a20 共20欄 B中有欄位 a1、a2、a3、a4、a5、a6b1、b2、b3、b4、...、b18 共24欄 現在想作表C 條件為 A.a1=B.a1 A.a2=B.a2 A.a3=B.a3 A.a4=B.a4 A.a5=B.a5 A.a6=B.a6 即C表有欄位 a1、a2、a3、a4、a5、a6 (from 條件) a7、a8、a9、a10、...、a20 (符合條件、from 表A) 共20欄 我的作法如下: proc sql; create table C as select * from A where exists (select * from B where A.a1=B.a1 and A.a2=B.a2 and A.a3=B.a3 and A.a4=B.a4 and A.a5=B.a5 and A.a6=B.a6); quit; 因為資料量很大 都要跑超過10小時,十分的耗時 想請問有沒有更好的寫法 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 163.14.83.28 ※ 編輯: zacaria 來自: 163.14.83.28 (07/20 13:32)

07/20 14:03, , 1F
不熟SAS,但直覺是用 View, 還有你的語法好像沒有到38欄
07/20 14:03, 1F
※ 編輯: zacaria 來自: 163.14.83.28 (07/20 15:11) 謝謝提醒 我的問題敘述錯了 已改正 ※ 編輯: zacaria 來自: 163.14.83.28 (07/20 15:12)

07/21 20:59, , 2F
可以用inner join 吧 = =
07/21 20:59, 2F

07/21 23:05, , 3F
如果 tableB的欄位沒有用到,這種寫法有可能比 join快
07/21 23:05, 3F
文章代碼(AID): #1CHJJVas (Database)
文章代碼(AID): #1CHJJVas (Database)