3

値をinsert queryfromに設定したいのですがselect query、これを実行する方法。

insert into t_user (id,user_id) values (1, ) 
where user_id in (select id from user where id=123)

選択したクエリ値からの値を設定したいのですがuser_id、SQLでこれを行うにはどうすればよいですか?

4

6 に答える 6

3

これを試して:

INSERT INTO t_user (id, user_id)
SELECT 1, id 
FROM user
WHERE id = 123
于 2012-06-18T11:37:43.887 に答える
2
insert into t_user(id, user_id) select 1, id from user where id=123;
于 2012-06-18T11:37:25.413 に答える
2
insert into t_user (id,user_id)
select 1,id from user where id=123

テーブルに列が 2 つしかない場合は、列を再度指定する必要はありません

  insert into t_user
  select 1,id from user where id=123
于 2012-06-18T11:40:26.110 に答える
1
INSERT INTO t_user(id, user_id)
       SELECT id,1
       FROM user ;
       WHERE id = 123 
于 2012-06-18T12:10:54.913 に答える
1

そしてその場合、これの問題は何ですか:

INSERT INTO t_user(id, user_id) VALUES(1,123);

問題は少し奇妙です。最初から両方の値を知っているのであれば、わざわざ選択する必要はありません。

于 2012-06-18T11:39:54.703 に答える
0

このようなテーブル構造があると仮定します

----------      -------
 articles        users
----------      -------
 rowid           rowid
 article_id      user_id
 user_id         user_name

そして、このようないくつかのエントリ

---------------------------------
 users
---------------------------------
 rowid     user_id     user_name
---------------------------------
   1         124         joe
   7         12309       mark

別のテーブルからのルックアップ/参照に基づいて値を挿入する正しい方法は次のとおりです。

 INSERT INTO articles (rowid, article_id, user_id)
     SELECT 1, 12392, user_id FROM users
     WHERE rowid = 7 

これにより、次のレコードが記事に挿入されます

---------------------------------
 articles
---------------------------------
 rowid     article_id    user_id 
---------------------------------
   1          12392       12309 

しかし、なぜこのデータベース設計または挿入方法を使用するのかは、私にはわかりません。

于 2012-06-18T11:37:50.073 に答える