全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:835
推到 Plurk!
推到 Facebook!

請問如何select 三個資料表成為一個資料表

答題得分者是:Miles
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-13 17:14:49 IP:220.191.xxx.xxx 未訂閱
有A,B,C三張表 A表結構爲: ID 用戶編號 JOBCODE 職業代號 AREAID1 首選區域編號 AREAID2 第二區域編號 AREAID3 第三區域編號 B表結構爲: JOBCODE 職業代號 JOB 職業全稱 C表結構爲: AREAID 區域編號 AREA 區域全稱 問題是這樣的,想通過一句SELECT得到一個新的表,其結構爲: ID 用戶編號 JOBCODE 職業代號 JOB 職業全稱 AREAID1 首選區域編號 AREA1 首選區域全稱 AREAID2 第二區域編號 AREA2 第二區域全稱 AREAID3 第三區域編號 AREA3 第三區域全稱 小弟初練SQL,請各位大大指教,謝謝!
------
-=-=-=-=-=-=-=-=-=-=-=
Eveything as your wish.
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-13 17:17:46 IP:220.191.xxx.xxx 未訂閱
對了,A表中的各種編號不一定在B、C表中找得到,但結果中此行資料要保留! 再次謝謝!
------
-=-=-=-=-=-=-=-=-=-=-=
Eveything as your wish.
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-13 18:43:30 IP:218.170.xxx.xxx 未訂閱
DATABASE?
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-13 20:27:37 IP:61.164.xxx.xxx 未訂閱
DataBase是用Ado連結的Visual Foxpro 自由表,不過這應該和用什麽DataBase系統沒多大關係,小弟只想了解相關SQL-Select的標准寫法,MSSQL,MySQL,Oreacl都可以。 謝謝指教!
------
-=-=-=-=-=-=-=-=-=-=-=
Eveything as your wish.
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-13 21:52:25 IP:61.31.xxx.xxx 未訂閱
Hi WoodTiger try this:
Select A.ID, A.JOBCODE, B.JOB, 
       A.AREAID1, C1.AREA, 
       A.AREAID2, C2.AREA, 
       A.AREAID3, C3.AREA
from A A, B B, C C1, C C2, C C3
where A.JOBCODE = B.JOBCODE
  and A.AREAID1 = C1.AREAID
  and A.AREAID2 = C2.AREAID
  and A.AREAID3 = C3.AREAID
我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-13 23:00:32 IP:61.62.xxx.xxx 未訂閱
利用miles兄的結果再加強一點, 因為有可能有對應不上的資料, 所以改為,    
Select A.ID, A.JOBCODE, B.JOB, 
       A.AREAID1, C1.AREA, 
       A.AREAID2, C2.AREA, 
       A.AREAID3, C3.AREA
from A, B, C C1, C C2, C C3
where A.JOBCODE *= B.JOBCODE
  and A.AREAID1 *= C1.AREAID
  and A.AREAID2 *= C2.AREAID
  and A.AREAID3 *= C3.AREAID
利用 *= 來達成 left join 的目的, 解決對應不上的問題!
WoodTiger
初階會員


發表:35
回覆:90
積分:25
註冊:2003-08-01

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-14 08:25:19 IP:220.191.xxx.xxx 未訂閱
感謝timhuang,讓我發現了*可以這樣用,同時感謝Miles和hahalin。
------
-=-=-=-=-=-=-=-=-=-=-=
Eveything as your wish.
系統時間:2024-06-26 7:47:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!