将一个MySQL表分成两个(导出内容)

时间:2014-02-07 08:42:52

标签: php mysql sql

请帮我把导出内容 MySQL表分成两部分。我尝试了很多,但结果很差。

初始表:

product_id  int(11) //id of some product    
feature_id  int(11) //id of the feature (like: color)            
option_name varchar(1024)   utf8_general_ci // variant of the feature (like: blue)
PRIMARY(product_id, feature_id)

(DESC:这是存储连接到某个产品的特定选项的选项名称(变体)的表格)

但这不好(没有必要为每个产品指定option_name,最好指定option_id)所以我在逻辑上把它分成两个但我无法正确导出内容。

1)选项

id  int(11) AUTO_INCREMENT       
feature_id  int(11)         
option_name varchar(1024)   utf8_general_ci 

DESC:它只存储它所连接的option_name和id和feature

2)products_options

id  int(11) AUTO_INCREMENT   Показать больше операций
product_id  int(11)         
feature_id  int(11) 
option_id   int(11) 

DESC:它存储与之连接的option_id和product_id以及feature_id

2 个答案:

答案 0 :(得分:1)

INSERT INTO options (feature_id, option_name) VALUES (SELECT feature_id, option_name FROM initial_table);

接下来制作一些脚本(在php上可能?)用option_ids填充products_options,因为你需要options.option_idInitial_table.option_name,但mysql不支持连接子查询。< / p>

答案 1 :(得分:1)

您可以使用子查询

INSERT INTO options (feature_id, option_name) VALUES
      (SELECT feature_id, option_name FROM initial_table);