線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:983
推到 Plurk!
推到 Facebook!

請問一個關於JOIN的SQL語法問題

答題得分者是:Fishman
astutefox
一般會員


發表:3
回覆:1
積分:0
註冊:2003-07-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-13 11:22:24 IP:211.78.xxx.xxx 未訂閱
現在是有一個訂單TABLE叫A,跟一個製造命令TABLE叫B、一個製造命令變更TABLE叫C。 一個訂單會有一個對映的B,如果B有變動的話,會把變動的記錄存在C中。 對方的要求是要從A關聯B(要把A跟B的欄位列在同一個DBGRID),但如果B有變動(也就是C裡面有相關的資料),就要去抓A跟C的欄位,而不抓A跟B的。 之前寫到了A LEFT JOIN B後,就不知道該怎麼寫了,有過用IF EXIST去判斷C裡面有沒有相關的資料,但似乎用了JOIN後就不能加IF了。 我用的資料庫是MS SQL,順便列出我之前寫的(A跟B),謝謝 select TOP 50 A.*,B.* from COPTD as A left join MOCTA as B on A.TD001=B.TA026 and A.TD002=B.TA027 and A.TD003=B.TA028
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-13 12:52:44 IP:210.65.xxx.xxx 未訂閱
Hi astutefox,    假設 TableB 與 TableC 結構完全相同,且每一個製造命令只有一筆命令變更
select  *
from    table1 as t1 left join table2 as t2 on t1.order_number = t2.order_number
where not exists (select 'exists' from table3 as t3 where t2.job_number = t3.job_number)
union all
select *
from table1 as t1 join table3 as t3 on t1.order_number = t3.order_number
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
astutefox
一般會員


發表:3
回覆:1
積分:0
註冊:2003-07-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-14 00:27:01 IP:220.134.xxx.xxx 未訂閱
試了一下,還有點小小的問題,不過已經給我一個方向跟做法了。 感謝fishman大大,一下子就解決我的問題。
系統時間:2024-09-06 9:17:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!