2017-03-15 28 views
0

我有兩個表SQL查詢來查找重複在一個表中,如果沒有找到他們移動到另一個表

表1:

cust id name dob  join date 
1   roger 1/12/2012 8/12/2012 
2   ranjeet 8/11/1988 9/12/2012 
3   pinki 14/12/1990 10/12/2012 
4   david 5/12/1947 1/1/2017 
6   Tim  5/12/2012 1/1/2017 

表2:

cust id name dob  Join date 
1   roger 1/12/2012 8/12/2012 
4   david 5/12/1947 1/1/2017 
1   roger 1/12/2012 8/12/2012 
6   Tim  5/12/2012 1/1/2017 
3   pinki 14/12/1990 10/12/2012 
2   ranjeet 8/11/1988 9/12/2012 

我想要的結果表:

cust id name dob  join date 
4   david 5/12/1947 1/1/2017 
6   tim  5/12/2012 5/1/2017 

cust_id是表1中的主鍵,但不是表2中的主鍵,但它是唯一的,並且是表1中的主鍵。所以這裏的情況數據是通過表1中的API通過唯一條目傳入的,但同時它也被推送到表2中,在那裏它可能被複制。

我只想從表2中檢查表1中的cust_id之後加入日期在今天-3天之後的唯一訂戶。

假定cust_id 4和6也出現在表1中,但它們的加入日期在今天之前是-3天,所以它們對於表格來說有點舊。

非常感謝您的幫助。

+0

到目前爲止您嘗試了什麼?你的邏輯看起來很簡單,對於正常的'LEFT JOIN'查詢來獲得結果。但是您的預期輸出來自表1,而不是「僅來自表2的那些唯一訂戶」,正如您所描述的 –

回答

0

不知道是否正確undserstood,但我會去:

select * from table2 
where cust_id not in (select cust_id from table1 where join_date <= sysdate - 3) 

我認爲Oracle數據庫,因此 'SYSDATE'。

PS。表2有cust_id = 1的重複行。如果Cust_id是主鍵,則不應該發生這種情況

+0

對不起我的不好..在表2中有另一個字段被稱爲主鍵,但唯一與列表1匹配的列是cust_id和我必須照顧結果表中的重複條目..非常感謝你的上述答案 –

相關問題