0

私は2つのテーブルを持っていbasketsますfruits; abasketには多くの違いfruitsがあるため、1 対多の関係です。

表は次のとおりです。

baskets 
id NOT NULL PRIMARY KEY AUTO_INCREMENT,
basket_name varchar(20)

fruits 
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
fruit_name varchar(20),
basket_id INT FOREIGN KEY REFERENCES baskets(id)

列名とデータが次のように整理された Excel シートがあります。

バスケットフルーツ

Basket_1 りんご、マンゴー、バナナ、梨

Basket_2 マンゴー、いちご、プラム、バナナ、ぶどう

Baskt_3 ラズベリー、アップル、ナシ

上記でモデル化されたリレーショナル アーキテクチャで、これらすべての果物を 1 つのバスケットに格納するための最善の方法は何でしょうか?

スクリプトを使用して (Ruby で) より適切に解析できるように、XLS ファイルを CSV に変換しましたが、テーブルがめちゃくちゃになっていて、各果物が個別のセルにあり、セルの数が 1 つのバスケット (行) ごとに異なることがわかりました。スプレッドシートで。

私の質問は、次のようなものです: Import Excel Data to Relational Table at MySQL

しかし、データは同じではありません。

すべての提案を歓迎します!

4

1 に答える 1

0

この種の問題は、常にかなりの手順を踏むように見えます。

果物が別々のセルにある場合は、Excel の貼り付け - 転置ツールを使用して、すべてのセルを 1 つのシートにコピーし、次に貼り付け - 転置を使用してそれらを新しいシートに貼り付けて、行を列に変換します。

3 番目のシートでは、2 行目から始まる各セルの値を 1 行目の値と連結する数式を作成します。sheetA に新たに転置された値があり、sheetB が新しいシートである場合、式は になり=sheetA!a$1 & "," & sheetA!a2、その式を a2:zz999 か​​らコピーするか、必要な距離までコピーします。

次に、列を連結する必要があります。これは手動で行うか、シートをインポートした後に Mysql の UNION ステートメントを介して行うことができます。

SELECT COLUMN1 FROM SHEETB
UNION
SELECT COLUMN2 FROM SHEETB
UNION
...

あなたはアイデアを得る。かごと果物を組み合わせた畑が 1 つの列になったら、簡単に 2 つの列に分けることができます。

于 2013-10-08T20:22:12.033 に答える