如何在MySQL中使用JOIN更新多行?

时间:2018-05-18 11:15:51

标签: sql

我有3张桌子:
进口商:
IMPORTER

类:
CATEGORIES

product_categories:
PRODUCT_CATEGORIES

如何设置" categories.name"到" importer.tag"当" importer.sku" =" product_categories.product_reference"?

2 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

UPDATE categories
SET name = importer.tag
FROM
    categories
    INNER JOIN product_categories ON categories.id = product_categories.category_id
    INNER JOIN importer ON importer.sku = product_categories.product_reference;

请注意,这将更新类别表中的所有可能记录(其中可以与product_categories和importer表连接)。如果只需要更新类别中的特定记录,还可以使用WHERE子句。

编辑:

不应该更新categories.name,而是importer.tag ...抱歉......

UPDATE importer
SET tag = categories.name
FROM
    importer
    INNER JOIN product_categories ON product_categories.product_reference = importer.sku
    INNER JOIN categories ON categories.id = product_categories.category_id;

编辑2:

作为MS SQL Server用户,我不知道MySQL对UPDATE查询使用略有不同的语法。快速浏览一下MySQL文档后,您可以尝试以下查询:

UPDATE
    importer
    INNER JOIN product_categories ON product_categories.product_reference = importer.sku
    INNER JOIN categories ON categories.id = product_categories.category_id
SET
    tag = categories.name;

答案 1 :(得分:0)

试试这个

photoImageView