该请求有效:
有两个连续的FROM。当我删除第一个时,为什么不起作用?
DELETE FROM TableA
FROM TableA dim
LEFT OUTER JOIN (
SELECT DISTINCT ColA
FROM TableB
UNION ALL
SELECT DISTINCT ColA
FROM tableC
) A ON A.ColA= dim.ColA
WHERE A.ColA IS NULL
Run Code Online (Sandbox Code Playgroud)
编辑 这是行不通的,我以为是正确的:
DELETE
FROM TableA dim
LEFT OUTER JOIN (
SELECT DISTINCT ColA
FROM TableB
UNION ALL
SELECT DISTINCT ColA
FROM tableC
) A ON A.ColA= dim.ColA
WHERE A.ColA IS NULL
Run Code Online (Sandbox Code Playgroud)
谢谢
这是因为表联接。SQL引擎需要知道要从哪个源中删除,而奇数FROM FROM语法可以完成此操作。
您拥有的语句在功能上等效于此语句,除了将表别名替换为第一个FROM子句外,该语句完全相同:
DELETE dim
FROM TableA dim
LEFT OUTER JOIN (
SELECT DISTINCT ColA
FROM TableB
UNION ALL
SELECT DISTINCT ColA
FROM tableC
) A ON A.ColA= dim.ColA
WHERE A.ColA IS NULL
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |