2009-07-07 8 views
0

こんにちは友人は、次のように問題の方法を教えてくれました....... 私は別のテーブルに列の値として一つのテーブルを挿入しようとしています.... 2列とtable2には3列が含まれています。これで、table1をtable2に3列の値として挿入する必要があります。その列table1に存在する必要があります。これはperticularly MYSQLに関してのみです。第3列に格納されているデータをどのように取得できるかを示します。Mysqlの挿入

+0

あなたが意味するものを示すためにサンプルデータを表示することをお勧めします –

答えて

1

少し教えていただけますか?今の

私の推測を(例を与える):あなたがTABLE1から欲しいものを選択する問合せを書くことができた場合、あなたはtable2のに挿入するINSERT...SELECTを使用することができます

INSERT INTO table2 (id1, value1, more_value) 
    SELECT id1, value1, NULL FROM table1 
0

INSERT INTO table2(col3) 
SELECT CONCAT(col1,col2) as table1val FROM table1 
0

例えば

あなたは列の値として、テーブル全体を挿入することはできません。

テーブル1全体を1つの列で参照する必要がある場合は、テーブル1に何らかの「グループID」を追加し、それをテーブル2に挿入し、SELECTでJOINを実行する必要があります。例えば

あなたは表2の値になるように、以下の表を望んだ場合:

original table1: 
col1, col2 
============== 
"val1", "val5" 
"val2", "val6" 
"val3", "val7" 
"val4", "val8" 

new table1: 
col1, col2, group_id 
======================== 
"val1", "val5", 1 
"val2", "val6", 1 
"val3", "val7", 1 
"val4", "val8", 1 

次に表2に、あなたが

table2: 
col1, col2, group_id 
==================== 
"x", "y", 1 

を持っているでしょうそして、あなたは一緒に何かをするだろうとバックを取得します

SELECT 
    table2.col1 
    , table2.col2 
    , table1.col1 
    , table1.col2 
FROM 
    table2 
    INNER JOIN 
    table1 
    ON (table2.group_id = table1_group_id) 

そして、それはあなたを与えるだろう:

を行
table2.col1, table2.col2, table1.col1, table1.col2 
================================================== 
"x",   "y",   "val1",  "val5" 
"x",   "y",   "val2",  "val6" 
"x",   "y",   "val3",  "val7" 
"x",   "y",   "val4",  "val8"