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

LEFT JOIN

尚未結案
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-22 10:53:58 IP:61.218.xxx.xxx 未訂閱
D6_MS2000 請問各位大大 Select TG001,MQ002,TG002,TG005,MA002,TH004,TH005,TH006,MB029 ,TH008,MB008,MB043,MB077,MQ015  from PURTG,PURTH,INVMB,CMSMQ,PURMA  WHERE PURTG.TG001=PURTH.TH001  AND PURTG.TG002=PURTH.TH002  AND PURTH.TH004=INVMB.MB001  AND PURTG.TG001=CMSMQ.MQ001  AND PURTG.TG005=PURMA.MA001  AND PURTG.TG005=INVMB.MB032         Select TG001,MQ002,TG002,TG005,MA002,TH004,TH005,TH006,MB029,TH008,MB008,MB043,MB077,MQ015  from PURTG Left join PURTH ON PURTG.TG001=PURTH.TH001 AND PURTG.TG002=PURTH.TH002   Left join CMSMQ ON PURTG.TG001=CMSMQ.MQ001   Left join PURMA ON PURTG.TG005=PURMA.MA001  Left join INVMB ON PURTG.TG005=INVMB.MB032 Left join INVMB ON PURTH.TH004=INVMB.MB001 //該如何left join 拜託各位
------
doll_candy
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-22 20:21:10 IP:63.84.xxx.xxx 未訂閱
您好!    請在您的Left Join語句中, Select后的每個欄位名前加上資料表名稱, 如下: Select PURTG.TG001... 另外, 請問您需要做到的結果是什么? MSSQL還提供另一種稱之為外部合并(Left Outer Join)的特殊合并方法, 其作用舉例來說, 資料表1和資料表2, 說明如下: Select A.Number, A.Name From 資料表1 Left Outer Join 資料表2 On A.Number=B.Number //資料表1和資料表2作外部合并, 資料表1中每一筆資料都會被選出來, //不論是否在資料表2中找到相匹配的資料 參考看看! ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/09/22 20:23:25
------
忻晟
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-22 21:06:30 IP:61.223.xxx.xxx 未訂閱
引言: 您好! 請在您的Left Join語句中, Select后的每個欄位名前加上資料表名稱, 如下: Select PURTG.TG001... 另外, 請問您需要做到的結果是什么? MSSQL還提供另一種稱之為外部合并(Left Outer Join)的特殊合并方法, 其作用舉例來說, 資料表1和資料表2, 說明如下: Select A.Number, A.Name From 資料表1 Left Outer Join 資料表2 On A.Number=B.Number //資料表1和資料表2作外部合并, 資料表1中每一筆資料都會被選出來, //不論是否在資料表2中找到相匹配的資料
PURTG.PURTH為單頭單身關係 PURTG 其中各一欄位(代號) 與 CMSMQ(單據Table) & PURMA(廠商Table) 有關聯 PURTG 其中一欄位 與 INVMB(廠商) 有關聯 PURTH 其中一欄位 與 INVMB(品名) 有關聯 &&假設INVMB(產品基本Table) 內有 同品名不同廠商 但之前我只做過 Select .... from PURTG Left join PURTH ON PURTG.TG001=PURTH.TH001 AND PURTG.TG002=PURTH.TH002 Left join CMSMQ ON PURTG.TG001=CMSMQ.MQ001 Left join PURMA ON PURTG.TG005=PURMA.MA001 Left join INVMB ON PURTG.TG005=INVMB.MB032 &&前面這一段由 PURTG LEFT JOIN .....程式沒錯誤訊息 &&但後面這一段就不曾做過 PURTH LEFT JOIN INVMB 會有問題 Left join INVMB ON PURTH.TH004=INVMB.MB001 //該如何left join 小妹拜託了
------
doll_candy
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-22 22:18:09 IP:63.84.xxx.xxx 未訂閱
您好!    我剛才發現您的語法中有個重复的Left Join語句, 我將其以紅色標注, 如下:
引言: PURTG.PURTH為單頭單身關係 PURTG 其中各一欄位(代號) 與 CMSMQ(單據Table) & PURMA(廠商Table) 有關聯 PURTG 其中一欄位 與 INVMB(廠商) 有關聯 PURTH 其中一欄位 與 INVMB(品名) 有關聯 &&假設INVMB(產品基本Table) 內有 同品名不同廠商 但之前我只做過 Select .... from PURTG Left join PURTH ON PURTG.TG001=PURTH.TH001 AND PURTG.TG002=PURTH.TH002 Left join CMSMQ ON PURTG.TG001=CMSMQ.MQ001 Left join PURMA ON PURTG.TG005=PURMA.MA001 Left join INVMB ON PURTG.TG005=INVMB.MB032 前面這一段由 PURTG LEFT JOIN .....程式沒錯誤訊息 但後面這一段就不曾做過 PURTH LEFT JOIN INVMB 會有問題 Left join INVMB ON PURTH.TH004=INVMB.MB001
請改為如下試試看: Select .... from PURTG Left join PURTH ON PURTG.TG001=PURTH.TH001 AND PURTG.TG002=PURTH.TH002 Left join CMSMQ ON PURTG.TG001=CMSMQ.MQ001 Left join PURMA ON PURTG.TG005=PURMA.MA001 Left join INVMB ON PURTG.TG005=INVMB.MB032 and PURTH.TH004=INVMB.MB001 當然您還需要注意其中各欄位的關聯問題. 參考看看! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
doll_candy
初階會員


發表:110
回覆:53
積分:32
註冊:2002-04-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-23 17:34:17 IP:61.218.xxx.xxx 未訂閱
引言:請改為如下試試看: Select .... from PURTG Left join PURTH ON PURTG.TG001=PURTH.TH001 AND PURTG.TG002=PURTH.TH002 Left join CMSMQ ON PURTG.TG001=CMSMQ.MQ001 Left join PURMA ON PURTG.TG005=PURMA.MA001 Left join INVMB ON PURTG.TG005=INVMB.MB032 and PURTH.TH004=INVMB.MB001
棒極了 NICE 謝了
------
doll_candy
系統時間:2024-07-02 0:55:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!