0

在 1 个表中,我需要根据其他表值插入具有特定值的特定行。

UPDATE item_properties2 AS P
INNER JOIN items ON items.id = P.item
INNER JOIN item_groups ON item_groups.idp = items.group_id 
SET P.nr = '0'
WHERE P.type = 1140614900 AND items_groups.idp = '1140503406';

这将更新表。但我需要的基本上是。

( id, type, item, value, shows, nr) 值 (78173, 1336983282, 1352706945, 'test Laisvai Pastomas Sharp', 0, 1)

item_properties2.Id - 只是行 id,
item_properties2.type- 连接到 item_property_groups2.id ,
'item_properties2.item' 这连接到 item.id ,
item.id 有另一列 item.group_id ,
item.group_id 连接到 item_groups.id 有另一列裸 item_groups.idp 。

我只需要选择 items_groups.idp = '1140503406' 。基本上我应该在 item_properties2 中添加具有我输入的特定类型值的行,并且只添加到具有特定 item_properties2 的模型中。项目符合 item_groups.idp 。我不知道该怎么做。

4

1 回答 1

1

有一些方法可以将 2 个表中的大量数据插入到较新的表中。

这可以这样做:

INSERT INTO item_properties2 (id, type, item, value, shows, nr)
SELECT Yid, Ytype,Yitem,Yvalue, Yshows, Ynr
FROM items
INNER JOIN item_groups ON item_groups.idp = items.group_id
WHERE  items_groups.idp = '1140503406'

您现在将调用特定的 select 语句,而不是使用 VALUES 标记。您只需要将上面的 Y 值更改为您自己的列名。

或者您可以将输入放入存储过程中,上述查询将在您的 2 个表上运行,并将与 where 语句一起使用的值插入到第 3 个表中。

    CREATE PROCEDURE sInput
    ( @val1 int, @val2 int, @val3 varchar(10))
    AS
    INSERT INTO MyTable(val1, val2, val3)
    VALUES(@val1, @val2, @val3)
    return
于 2012-11-13T12:38:45.180 回答