從包含欄位「empid」、「empname」的名為「employee」的表中刪除重複記錄,和'empssn',首先使用查詢來識別它們:
<code class="sql">SELECT COUNT(empssn), empssn FROM employee GROUP BY empssn HAVING COUNT(empssn) > 1</code>
但是,後續刪除查詢:
<code class="sql">DELETE FROM employee WHERE (empid, empssn) NOT IN ( SELECT MIN(empid), empssn FROM employee GROUP BY empssn );</code>
在指定目標表'employee' 時遇到錯誤FROM 子句。
解決方案:
要解決此錯誤,請將子查詢包裝在派生表中:
<code class="sql">DELETE FROM employee WHERE (empid, empssn) NOT IN ( SELECT empid, empssn FROM ( SELECT MIN(empid) AS empid, empssn FROM employee GROUP BY empssn ) X );</code>
此修改允許您在派生表中:
此修改允許您在派生表中:此修改允許您在派生表中:此修改允許您在子查詢中引用原始表並成功刪除重複行。以上是為什麼在 MySQL 中刪除重複項時出現「DELETE FROMEmployee WHERE (empid, empssn) NOT IN (...)\」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!