2014-02-07 18 views
-1

請幫我把導出內容把MySQL表分成兩份。我嘗試了很多,但結果很差。將一個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和特徵,其所連接

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

回答

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

接下來使用option_ids來填充products_options腳本(在php上可能?),因爲您需要查找options.option_idInitial_table.option_name,但是mysql不支持連接子查詢。

+0

謝謝,這是偉大的。我發現這是我需要的解決方案! –

+0

只有我看到我需要SELECT DISTINCT –

+0

我還沒有腳本,只是隨後有兩個查詢。 –

1

您可以使用子查詢

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