Sql 转换子查询

Sql 转换子查询,sql,sql-server,join,inner-join,sql-insert,Sql,Sql Server,Join,Inner Join,Sql Insert,如何将此子查询转换为join查询或更简单的查询,如 SELECT * FROM ViewBuy99 WHERE Id NOT IN ( SELECT Id FROM Buy99 ) INSERT INTO Buy99 SELECT * FROM ViewBuy99 WHERE Id NOT IN ( SELECT Id FROM Buy99 ) 您可以使用JOIN将其表示为: insert int

如何将此子查询转换为join查询或更简单的查询,如

SELECT *
FROM ViewBuy99
WHERE Id NOT IN (
        SELECT Id
        FROM Buy99
        )

INSERT INTO Buy99
SELECT *
FROM ViewBuy99
WHERE Id NOT IN (
        SELECT Id
        FROM Buy99
        )

您可以使用
JOIN
将其表示为:

insert into Buy99
    select vb.*
    from ViewBuy99 vb left join
         Buy99 b
         on b.id = vb.id
    where b.id is null;
但是,我建议
不存在

insert into Buy99
    select vb.*
    from ViewBuy99 vb 
    where not exists (select 1 
                      from Buy99 b
                      where b.id = vb.id
                     );

我们不是都喜欢真正的
反连接
语法:-(