114

タイトルが示すように、私は別のテーブルから値といくつかのデフォルト値を選択して、あるテーブルに挿入しようとしています。

INSERT INTO def (catid, title, page, publish) 
(SELECT catid, title from abc),'page','yes')


INSERT INTO def (catid, title, page, publish) 
VALUES
((SELECT catid, title from abc),'page','yes'))

最初のクエリではmysqlエラーが発生し、2番目のクエリでは列数が一致しません。

私は何をする必要がありますか?

4

5 に答える 5

255

あなたは単にする必要があります:

INSERT INTO def (catid, title, page, publish) 
SELECT catid, title, 'page','yes' from `abc`
于 2011-05-06T05:38:44.970 に答える
8

ソース テーブルのサブセットをコピーする場合は、次のようにします。

INSERT INTO def (field_1, field_2, field3)

SELECT other_field_1, other_field_2, other_field_3 from `abc`

または、ソース テーブルから宛先テーブルにすべてのフィールドをコピーするには、より簡単に行うことができます。

INSERT INTO def 
SELECT * from `abc`
于 2013-10-23T12:22:18.817 に答える
3

自動インクリメントの主キーを持つテーブルに挿入し、次のような組み込みの MySQL 関数を使用する場合、MySQL では次のNOW()ようにすることができます。

INSERT INTO course_payment 
SELECT NULL, order_id, payment_gateway, total_amt, charge_amt, refund_amt, NOW()
FROM orders ORDER BY order_id DESC LIMIT 10;
于 2014-04-02T12:35:00.873 に答える