0

MySQLデータベースがあり、テーブルに特定のデータを挿入する必要があります。データは次のようになります 。SELECTidFROMa_tableWHERE...はIDのリストを返します。second_tablen行を挿入する必要があります。ここで、 nは最初のクエリから返された行の数です。2番目のテーブルには2つのフィールドが必要です。最初のテーブルは最初のクエリのレコードで、2番目のテーブルは整数で、スクリプトから渡します。例:最初のクエリが(12,14,17,18)を返し、スクリプトからの整数が5の場合、(12,5)、(14,5)、(17、 5)、(18,5)これはデータベースレイヤーで行う必要があります。selectステートメントを作成してからクエリを作成して実行したくありません。私はこのようなものが必要です(これは実際のクエリではありません-必要なものを示しているだけです):

INSERT INTO second_table(user_id、group_id)VALUES((12,14,17,18)、5)

または、より正確には次のようになります。

INSERT INTO second_table(user_id、group_id)VALUES((SELECT id FROM a_table WHERE ...)、5)

SQLのみでこれを行う方法はありますか(tsqlなし-sqlのみ)

4

3 に答える 3

6

SELECTにリテラル値を含めることができます。

INSERT INTO second_table (user_id, group_id)
SELECT id, 5
FROM a_table
WHERE ...
于 2012-05-07T07:44:52.333 に答える
1
INSERT INTO 
    second_table 
       (
       user_id
       ,group_id
       ) 
SELECT
    id
    ,5
FROM
    first_table
WHERE
    ...

INSERT ... SELECT構文の詳細については、MySQLのドキュメントを参照してください。

http://dev.mysql.com/doc/refman/5.1/en/insert-select.html

于 2012-05-07T07:48:45.350 に答える
1

こんにちは、以下のクエリを試すことができます

アイテムに挿入し、salesからitem_sold_qty、5を選択します

INSERT INTO second_table 
SELECT id , 5 FROM a_table  WHERE ...

ありがとう

于 2012-05-07T07:57:26.600 に答える