0

材料テーブルを持つデータベースがあります。Materials.Refines_To 行が元の列になった新しいテーブルを作成する必要があります。

例:

MATERIALS TABLE
ID    NAME    REFINES_TO
1     Ore1      Nuggets
2     Ore2      Simple Paste

NEW TABLE
ID   "in this case Nuggets"   "Simple Paste"
1              5                    2

このようにして、クラフト アイテムに必要なマテリアルを後で別のテーブルで参照できます。新しいテーブルを作成する必要があるのは 1 回だけです。新しいマテリアルが作成されたら、後で追加できます。

ありがとうございました

4

1 に答える 1

0

数値 5 と 2 はどこから取得していますか? この値を持つ数量という名前の材料に列があると仮定します...

create table refines_to
(
  id integer,
  name string,
  nuggets integer,
  simple_paste integer
}

insert into refines_to (name, nuggets, simple_paste)
(select MX.name,
        (select MN.quantity from materials MN where MX.name = MN.name and MN.REFINES_TO = 'Nuggets'),
        (select MP.quantity from materials MP where MX.name = MP.name and MN.REFINES_TO = 'Simple Paste'),
 from materials MX group by name)

きれいでも効率的でもありませんが、コードを捨てるには十分です。

于 2013-01-15T18:18:29.933 に答える