0

これはすでに機能しています。

    INSERT INTO TermsFinal 
            (old_classification, count, new_classification, old_term,new_term) 
        SELECT  old_classification   , Count(seed) AS count , new_classification, old_term, new_term FROM   TermsTemp
            GROUP  BY old_classification
            ORDER  BY count DESC    

TermsFinal には、SOURCE_TABLE と呼ばれるもう 1 つのフィールドがあり、TermsTemp にはありません。そのフィールドにも入力したいと思います。$source_table の値は既に取得しています。私はこれを試しましたが、うまくいきません。

    INSERT INTO TermsFinal 
            (SOURCE_TABLE,old_classification, count, new_classification, old_term,new_term) 
    '{$SOURCE_TABLE}',  SELECT  old_classification   , Count(seed) AS count , new_classification, old_term, new_term FROM   TermsTemp_TEMP
            GROUP  BY old_classification
            ORDER  BY count DESC

insert into ステートメントを一度に実行する際に、TermsFinal の SOURCE_TABLE フィールドにその値をどのように追加しますか?

ここで私にとってもう 1 つの不可解な点は、なぜ私の最初の SQL insertinto が SQL キーワード VALUES なしで機能するのかということです。このページhttp://www.w3schools.com/sql/sql_insert.aspは、 VALUES部分が必要であることを教えています!

4

2 に答える 2

2

文字列 (またはその他の型) 定数を select に入れることができます。たとえば、 select 'string' as const_str , field1 from table12 つの列が返され、最初の列にはすべての行に「文字列」テキストが含まれます。あなたの場合、あなたができる

 INSERT INTO TermsFinal 
        (SOURCE_TABLE,old_classification, count, new_classification, old_term,new_term) 
  SELECT  '{$SOURCE_TABLE}', old_classification   , Count(seed) AS count , new_classification, old_term, new_term FROM   TermsTemp_TEMP
        GROUP  BY old_classification
        ORDER  BY count DESC
于 2012-06-14T16:18:08.097 に答える
1

テーブルにデータを挿入するにはいくつかの方法があります

一度に 1 行ずつ。これは、values キーワードが必要な場所です。

Insert into TableA (Col1, Col2,...) values (@Val1, @Val2,...)

自動 ID がオンになっている場合は、select @@identity (少なくとも ms sql では) を使用して ID を取得できます。これは、次回の挿入のために ID が必要な場合に便利です。

選択から(あなたがしていること)

Insert into tableA (Col1, Col2)
Select Val1, Val2 from TableB

または、ハードコードされた値と 2 つの別々のテーブルからの値を挿入します

Insert into tableA (Col1, Col2, Col3, Col4)
Select 'hard coded value', b.Val1, b.Val2, c.Val1 
from TableB b join Table c on b.TableCID=c.ID

一度に複数の行を挿入できるようになりました。

に選択

この方法は、クエリから新しいテーブルを作成することになり、テーブルまたはテーブルの一部の迅速なバックアップに最適です。

select * into TermsFinal_backup from TermsFinal where ...
于 2012-06-14T16:39:57.767 に答える