如果id在另一个表中,则使用值更新Mysql列

如果id在另一个表中,则使用值更新Mysql列,mysql,sql,sql-update,Mysql,Sql,Sql Update,我有两个表,一个是产品,一个是与类别关联的产品,两个表看起来都像: CREATE TABLE `oclh_product` ( `product_id` int(11) NOT NULL, `mpn` varchar(64) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; CREATE TABLE `oclh_product_to_category` ( `product_id` int(11) NOT NULL, `categor

我有两个表,一个是产品,一个是与类别关联的产品,两个表看起来都像:

CREATE TABLE `oclh_product` (
  `product_id` int(11) NOT NULL,
  `mpn` varchar(64) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `oclh_product_to_category` (
  `product_id` int(11) NOT NULL,
  `category_id` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
如果oclh_product_to_类别中的product_id等于某个数字,我需要将oclh_product.mpn从表oclh_product更新为26

我正在尝试以下sql查询:

UPDATE `oclh_product` INNER JOIN `oclh_product_to_category`
    ON oclh_product_to_category.category_id = oclh_product.product_id
SET oclh_product.mpn = '99999' WHERE `oclh_product_to_category`.`category_id` = 26; 
UPDATE `oclh_product` INNER JOIN `oclh_product_to_category`
    ON oclh_product_to_category.category_id = '26'
SET oclh_product.mpn = '99999';
就像这样:

UPDATE `oclh_product` INNER JOIN `oclh_product_to_category`
    ON oclh_product_to_category.category_id = oclh_product.product_id
SET oclh_product.mpn = '99999' WHERE `oclh_product_to_category`.`category_id` = 26; 
UPDATE `oclh_product` INNER JOIN `oclh_product_to_category`
    ON oclh_product_to_category.category_id = '26'
SET oclh_product.mpn = '99999';

没有成功。有关此更新语句的任何提示?

如果使用正确的
JOIN
条件,您的第一个查询应该可以工作。TRable别名更易于遵循:

UPDATE oclh_product p INNER JOIN 
       oclh_product_to_category pc
       ON pc.product_id = p.product_id
    SET p.mpn = '99999'
WHERE pc.category_id = 26; 

如果您正在
mpn
中存储一个数字,为什么该类型是字符串?最好使用某种数字类型。

我发现错误,正确的查询是:

UPDATE `oclh_product` INNER JOIN `oclh_product_to_category`
    ON oclh_product_to_category.product_id = oclh_product.product_id
SET oclh_product.mpn = '99999' WHERE `oclh_product_to_category`.`category_id` = 26;

再次感谢你,戈登·林诺夫。

你为什么不认为那些查询有效?我不知道为什么,但我的查询无效,但你的查询有效。谢谢,戈登@伊万迪莫夫。查看
join
条件。这将在两个表中使用
产品id