我在从我的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