請問一個關於JOIN的SQL語法問題 |
答題得分者是:Fishman
|
astutefox
一般會員 發表:3 回覆:1 積分:0 註冊:2003-07-02 發送簡訊給我 |
現在是有一個訂單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 發送簡訊給我 |
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |