關於oracle 三張表聯合查詢時出現的若干問題

近日在做一個存儲過程,該存儲過程需要先從三張表中查詢對應的數據出來,再插入到另一張表,這個過程可謂是曲折

問題:

1、查詢出來的數據有規律性重複

A表 爲公司工作記錄系統的工作記錄表

B表爲請假加班系統的請假加班記錄表

C表爲請假加班系統的用戶表


目的:現在是爲了以表A爲基表,和表B中的數據進行比對,將數據查詢到一張數據表中

問題:1、我第一次開始使用select A.work_date ,user_name from A left join B on A.work_date=B.date

這樣的話查詢的數據以date爲基準,發現A表中2018-05-02這個日期在B表中對應有三條記錄,這樣A表中的記錄會被翻倍(可能數量翻倍,也有可能是字段值翻倍,比如sum(A.xxx)正確爲8,翻3倍爲24),這樣就不符合要求,需要再添加查詢過濾條件

2、如果是想最終查詢表的記錄數和A表的一致,且A表中有group by ,這樣就不能再group by後面添加其他表的字段,這樣也會造成重複

3、join on後面的條件只針對join表的查詢

where 後的查詢條件是對整個查詢結果的過濾



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章