在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,'测试Laisvai pastatomas 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符合item_groups.idp。我不知道怎么做。
答案 0 :(得分: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