2016-03-25 16 views
-2

他の3つのテーブルのデータを持つテーブルを作成するためのMySQLクエリを設計するのに助けてください。MySQL、他のテーブルのデータを使用してテーブルを作成する

データベースの設計:私は

enter image description here

を試してみましたが、何をされました:代わりのAAABBBCCC:

INSERT INTO SklepZaloha (TIME) 
    SELECT TIME FROM Item1; 
INSERT INTO SklepZaloha (Boiler) 
    SELECT Value FROM Item1; 
INSERT INTO SklepZaloha (Zpatecka) 
    SELECT Value FROM Item2; 
INSERT INTO SklepZaloha (Vymnenik) 
    SELECT Value FROM Item3; 

しかしにおける結果は、

+3

はい、私たちがお手伝いできると思います。これまでに何を試しましたか? – mustaccio

+0

他のテーブルの内容と、コピーとマージが必要な列や行であるかどうかを知る必要があります。また、どのエントリが最優先され、どのエントリが最も優先度が低いか。 – Sparky256

+0

こんにちは、私は使用しようとしました: INSERT INTO SklepZaloha(TIME)SELECT TIME FROM Item1; INSERT INTO SklepZaloha(ボイラー)SELECT Value FROM Item1; INSERT INTO SklepZaloha(Zpatecka)SELECT値FROM Item2; INSERT INTO SklepZaloha(Vymnenik)SELECT Value FROM Item3; しかし、それは、その結果: B B B C C C の代わり: ABC ABC ABC だからヌルレコードを作成するまでの最後の値最初のINSERTから。 –

答えて

0

あなたINSERT ... SELECTニーズは一度離れて一つの値をかじる、一度に行全体ではなく挿入します。これを行うには、JOINを使用する必要があります。

INSERT INTO SklepZaloha 
    (`Time`, Boiler, Zpatecka, Vymnenik) 
    SELECT i1.`Time`, i1.Value, i2.Value, i3.Value 
    FROM Item1 i1 
    INNER JOIN Item2 i2 
     ON i1.`Time` = i2.`Time` 
    INNER JOIN Item3 i3 
     ON i1.`Time` = i3.`Time`; 

SELECT部分もSELECT ... INTO OUTFILEクエリの正しい構文になります。

+0

ありがとうございます!それがそれでした。今私はCSV形式の輸出を把握する必要があります。 –

-1

ABCABCABCは、私はあなたに一つのことを伝えることができ、ストアドプロシージャで準備されたステートメントをすべて使用する必要があります。私はこれを行ってからしばらくしていますが、ストアドプロシージャ内では、データでテーブルにアクセスしてから、準備したステートメントを作成して実行することができます。

ストアドプロシージャとプリペアドステートメントに関するMySQLのドキュメントはかなり良いです。

しかし、このタイプのステートメントをストアドプロシージャで実行する際に問題があることをぼくは覚えています。

申し訳ありませんもっと役立つことはありません。

マイケル

+0

1。このためにストアドプロシージャは必要ありません。 2.ストアドプロシージャで動作しないアウトファイルを選択します。 – Shadow

関連する問題