oracle SQL left join()或full out join()根据键排除记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle SQL left join()或full out 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 |日期


我很想知道如何做到这一点的建议。使用left join()或full out join()或任何其他建议?谢谢!

答案

使用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
    )

以上是关于oracle SQL left join()或full out join()根据键排除记录的主要内容,如果未能解决你的问题,请参考以下文章

Oracle left join 或right join

ORACLE LEFT JOIN 子查询 在SQL SERVER中可以使用如图中的子查询,ORACLE中怎么实现

Sql查询left join

SQL-left join 左表数据多次出现,求解!

SQL中join和left join的区别

SQL语句多表left join SUM出现的重复数据问题!