我在從我的MySQL數據庫中刪除行時遇到困難。我有兩張桌子,我正在加入。加入可能不是最好的解決方案,我絕對樂於接受建議。表是如下使用內部連接刪除單個表中的行
Table a
PART_NUMBER,cat_code介紹
Table b
PART_NUMBER,cat_code介紹
表B是正確的表的內容最近被更新。表b只有一條產品線。表a具有公司當前和以前製作的所有產品線。表a具有與多個cat_codes重複關聯的舊數據和part_number。
正確的cat_codes應該具有一個與實施例part_numbers.For PART_NUMBER 123456一對多的關係,和789可以具有兩個表的1A.The主鍵的cat_code是PART_NUMBER + cat_code
當運行此選擇語句我得到我需要從表a中刪除的唯一標識符的輸出。
SELECT CONCAT(a.part_number,a.cat_code)
FROM
b
INNER JOIN
a
WHERE
a.part_numer = b.part_number
AND a.cat_code != b.cat_code
但是,當我嘗試在DELETE FROM語句中使用該選擇語句它不起作用。這是失敗的陳述。
DELETE FROM
a
WHERE
CONCAT(part_number,cat_code) IN (SELECT CONCAT(a.part_number,a.cat_code)
FROM
b
INNER JOIN
a
WHERE
a.part_numer = b.part_number
AND a.cat_code != b.cat_code)
任何幫助,將不勝感激感謝
什麼錯誤呢它給? – bfavaretto 2012-02-18 00:40:39
它沒有給出錯誤,只返回沒有受到影響的行。 – 2012-02-20 21:53:02