我想从select query
设置值为insert query
,如何执行此操作。从选择查询插入查询值
insert into t_user (id,user_id) values (1,)
where user_id in (select id from user where id=123)
我想设置的user_id
从选择查询值的价值,如何做到这一点的SQL?
我想从select query
设置值为insert query
,如何执行此操作。从选择查询插入查询值
insert into t_user (id,user_id) values (1,)
where user_id in (select id from user where id=123)
我想设置的user_id
从选择查询值的价值,如何做到这一点的SQL?
insert into t_user(id, user_id) select 1, id from user where id=123;
假设你有一个像这样
---------- -------
articles users
---------- -------
rowid rowid
article_id user_id
user_id user_name
而且这样
---------------------------------
users
---------------------------------
rowid user_id user_name
---------------------------------
1 124 joe
7 12309 mark
几个条目插入正确的方式表结构基于lookup/re的值从另一个表ference会是这样:
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
这是超越我,但是,为什么要使用可以在本数据库设计或插入方法。
然而,这超出了我,为什么你会使用这个数据库设计或插入方法。我没有得到这一点请谅解 – harqs
解释为什么我的例子不是好的做法的定义是远远超出了SO的范围。 – 2012-06-18 11:57:53
而且在这种情况下,什么是这个问题:我的意思是这个问题有点怪,如果你知道从一开始这两个值,为什么选择用在所有的麻烦
INSERT INTO t_user(id, user_id) VALUES(1,123);
。
我不知道USER_ID的价值,我需要从某些其他表中获取这个值并插入到T_USER – harqs
实际上 - 对于这个查询 - 你可以。您从id = 123的用户中检索id,这意味着您始终检索id = 123,因此这两个查询是等效的,除非用户表根本不包含此类记录 –
insert into t_user (id,user_id)
select 1,id from user where id=123
,如果你的表只有两列则无需再次指定列
insert into t_user
select 1,id from user where id=123
INSERT INTO t_user(id, user_id)
SELECT id,1
FROM user ;
WHERE id = 123
你已经知道你要插入的ID。为什么打扰呢? – 2012-06-18 11:40:06
我不知道USER_ID的价值,我需要从一些其他表中的值,并插入到T_USER – harqs
@Geoist我猜测,因为如果id 123不存在于数据库中,那么它不想被插入.. 。 –