0

我有一个包含材料表的数据库。我需要创建一个新表,其中 Materials.Refines_To Rows 现在是原始的列。

例子:

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

这样我可以稍后在另一个表中参考制作项目所需的材料。只需要创建一次新表。我可以在以后添加任何新材料,因为它们被创建。

谢谢你

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 回答