oracle SQL左join()或full join()排除基于键的记录

时间:2019-03-21 09:47:48

标签: sql oracle set left-join full-outer-join

我想排除一个表中的记录(如果它出现在另一表中(基于键)

我要删除第一个表中的记录: cust_recommendataion 在第二个表中具有相同的(cust_id和product_id) 第二个表中不同的(cust_id和product_id)对可能只是第一个表中(cust_id和product_id)不同对的子集 在第二张表中也有一些“(cust_id和product_id)”对可能是唯一的。

我有2张桌子 1. cust_recommendataion:每个cust_id具有多个product_id


cust_id | product_id |排名


  1. cust_last_buy;每个cust_id具有多个product_id

cust_id | product_id |日期


很想知道该建议该怎么做。通过使用左join()或完全join()或任何其他建议? 谢谢!

1 个答案:

答案 0 :(得分:0)

使用Exist的一种可能的解决方案:

Delete from cust_recommendataion c
WHERE
    EXISTS (
        SELECT
           *
        FROM
            cust_last_buy
        WHERE
            cust_id = c.cust_id
             and 
            product_id = c.product_id
    )