1

ここには多くの例があることから始めなければなりませんが、それらのどれも、私が使用しなければならない複数の(私の場合は3つの)テーブルでは機能しません。

これの考え方は次のとおりです。テーブル(things)の1つを更新するときに、トリガーが2列の値を乗算した別のテーブル(current)(dudesテーブルからの給与とthingsからのthing_cost)を列curr_cashに自動的に更新するようにします。 。

私はそれを次のように見せたい:

Money : Date : Id1 (id of person) : Id2 (Id of thing)

例:

400 03-12-12 34 3
300 03-12-12 34 2
400 03-12-12 4 3

等々。

現在、私のトリガーは、すべてを合計して、何かを購入した人に関連付けることです。失敗ロジック。

これが私のトリガーのコードです:

create trigger money after update on `things`
for each row
begin
SET @c1 = (SELECT sum(`thing_cost`) from `things`);
SET @c2 = (SELECT sum(`salary`) from `dude_base`);
UPDATE `current` SET `curr_cash` = @c1 * @c2 / 100
end;
$$

合計の代わりに次のようなものを追加する必要があります。

WHERE id2 from things = id2 from current AND WHERE id1 from dude_base = is1 from current

しかし、私の構文は惨めに失敗します。私はxampp(phpmyadmin)でMySQLに取り組んでいます。

要約すると、私は男が何を買ったか(正確なID)、そして何を(正確なID)知っている必要があります。

4

1 に答える 1

1

あなたは次のようにこれを行うことができますJOIN

UPDATE `current` c 
INNER JOIN things    t ON c.id2 = t.id2
INNER JOIN dude_base d ON d.id1 = c.is1
SET c.`curr_cash` = t.thing_cost * d.salary / 100;
于 2012-12-03T08:59:48.137 に答える