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, ) VALUES (78173, 1336983282, 1352706945, 'test Laisvai pastatomas Sharp', 0, 1 shows)nr

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'

VALUES タグを使用する代わりに、特定の select ステートメントを呼び出すようになりました。上記の 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 に答える