将 SQL Server Delete 语句转换为使用内部联接
Convert SQL Server Delete statement to use inner join
我的目标是将以下查询转换为使用内部联接。
DELETE ##TABLE1
FROM ##TABLE1 A, ##TABLE2 B
WHERE A.VND_ACCT_NUM in (select distinct VND_ACCT_NUM from ##TABLE2)
我试过类似的方法,但似乎不对:
DELETE ##TABLE1
FROM ##TABLE1 A
INNER JOIN ##TABLE2 B
ON A.VND_ACCT_NUM in (select distinct VND_ACCT_NUM from ##TABLE2)
我的任务是将第一个查询转换为使用内连接语法。
试试这个:
DELETE A
FROM ##MX_DEALS A
INNER JOIN ##MX_DAR_ISSUE_DEALS B
ON A.VND_ACCT_NUM in (select distinct VND_ACCT_NUM from ##MX_DAR_ISSUE_DEALS)
直接匹配表:
DELETE FROM A
FROM ##TABLE1 A
INNER JOIN ##TABLE2 B
ON A.VND_ACCT_NUM i= B.VND_ACCT_NUM
SQL 如果您试图通过这样的连接多次删除同一行,服务器不会介意。此外,... IN(SELECT DISTINCT ...
无论如何都是毫无意义的,因为 IN
returns 一旦找到一个符合条件的行就为真。
我的目标是将以下查询转换为使用内部联接。
DELETE ##TABLE1
FROM ##TABLE1 A, ##TABLE2 B
WHERE A.VND_ACCT_NUM in (select distinct VND_ACCT_NUM from ##TABLE2)
我试过类似的方法,但似乎不对:
DELETE ##TABLE1
FROM ##TABLE1 A
INNER JOIN ##TABLE2 B
ON A.VND_ACCT_NUM in (select distinct VND_ACCT_NUM from ##TABLE2)
我的任务是将第一个查询转换为使用内连接语法。
试试这个:
DELETE A
FROM ##MX_DEALS A
INNER JOIN ##MX_DAR_ISSUE_DEALS B
ON A.VND_ACCT_NUM in (select distinct VND_ACCT_NUM from ##MX_DAR_ISSUE_DEALS)
直接匹配表:
DELETE FROM A
FROM ##TABLE1 A
INNER JOIN ##TABLE2 B
ON A.VND_ACCT_NUM i= B.VND_ACCT_NUM
SQL 如果您试图通过这样的连接多次删除同一行,服务器不会介意。此外,... IN(SELECT DISTINCT ...
无论如何都是毫无意义的,因为 IN
returns 一旦找到一个符合条件的行就为真。