从一个表里选数据 插入到另一个表里的sql语句

libRA_kin 2009-11-18 04:15:03
假设我有两个表 ta tb ta表里面的列是:key ca2 ca3
tb表里面是 key ca2 ca3 cb2 cb3 两个表的列 key是一样的 我现在的问题是 通过读取key 将ta表里面的key ca2 ca3列的值选出来再插入到 tb那张表里
有没有一条数据库语句就搞定的
key是通过request获取的
cb2 cb3 也是通过request获取的
...全文
545 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
libRA_kin 2009-11-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 acmain_chm 的回复:]
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。


引用我我现在想leave表关联staff 和organization这两张表 把 orgid parentid staffname 查出来 插入到 leave表里面
按照你这一句的理解答案如下。

SQL codeinsertinto leave (orgid,parentid,staffname)select tb_oa_staff.orgid,tb_oa_organization.parentid,tb_oa_staff.staffnamefrom tb_oa_staffinnerjoin tb_oa_organization using(orgid)

[/Quote]

我也不知道你的对不对 现在需求变了,不过以前几个问题 acmain都回答的很好 大家都加分!
ACMAIN_CHM 2009-11-18
  • 打赏
  • 举报
回复
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果


[Quote]我我现在想leave表关联staff 和organization这两张表 把 orgid parentid staffname 查出来 插入到 leave表里面[/Quote]
按照你这一句的理解答案如下。

insert into leave (orgid,parentid,staffname)
select tb_oa_staff.orgid,tb_oa_organization.parentid,tb_oa_staff.staffname
from tb_oa_staff inner join tb_oa_organization using(orgid)

libRA_kin 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 acmain_chm 的回复:]
假设你是用C,另外假设你的字段都是数字型。

sql="insert into tb(key,ca2,ca3,cb2,cb3) select key,ca2,ca3," + request("cb2") +"," + request("cb3") from ta where key=" + request("key")

其SQL语句原理如下。

insert into tb(key,ca2,ca3,cb2,cb3)
select key,ca2,ca3,999,888 from ta where key=12345
[/Quote]


mysql> desc tb_oa_leave;
+------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+--------------+------+-----+---------+----------------+
| levid | int(20) | NO | PRI | NULL | auto_increment |
| orgid | char(20) | YES | | NULL | |
| parentid | char(20) | NO | | NULL | |
| staffname | char(20) | NO | | NULL | |
| levcatagoriy | varchar(20) | YES | | NULL | |
| apptime | datetime | YES | | NULL | |
| begindate | date | YES | | NULL | |
| enddate | date | YES | | NULL | |
| state | varchar(1) | YES | | NULL | |
| approvingofficer | varchar(20) | YES | | NULL | |
| approvaltime | datetime | YES | | NULL | |
| comments | varchar(200) | YES | | NULL | |
| reason | varchar(100) | YES | | NULL | |
+------------------+--------------+------+-----+---------+----------------+

mysql> desc tb_oa_staff;
+-----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
| staffid | decimal(4,0) | NO | PRI | NULL | |
| orgid | char(20) | NO | MUL | NULL | |
| staffname | char(20) | NO | | NULL | |
| sex | char(1) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| national | varchar(100) | YES | | NULL | |
| birthday | datetime | YES | | NULL | |
| certno | varchar(30) | YES | | NULL | |
| political | char(20) | YES | | NULL | |
| maritalstatus | char(1) | YES | | NULL | |
| accountlocation | varchar(200) | YES | | NULL | |
| currentaddress | varchar(200) | YES | | NULL | |
| telephone | varchar(20) | YES | | NULL | |
| emergencyphone | varchar(20) | YES | | NULL | |
| optrid | varchar(20) | YES | | NULL | |
| opttime | datetime | YES | | NULL | |
| remark | varchar(100) | YES | | NULL | |
+-----------------+--------------+------+-----+---------+-------+


mysql> desc tb_oa_organization;
+----------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| orgid | char(20) | NO | PRI | NULL | |
| orgcode | char(100) | NO | | NULL | |
| parentid | char(20) | NO | | NULL | |
| status | char(1) | YES | | NULL | |
| optrid | varchar(20) | YES | | NULL | |
| opttime | datetime | YES | | NULL | |
| remark | varchar(100) | YES | | NULL | |
+----------+--------------+------+-----+---------+-------+

我我现在想leave表关联staff 和organization这两张表 把 orgid parentid staffname 查出来 插入到 leave表里面
这样写 大家能理解了吗?
ACMAIN_CHM 2009-11-18
  • 打赏
  • 举报
回复
假设你是用C,另外假设你的字段都是数字型。

sql="insert into tb(key,ca2,ca3,cb2,cb3) select key,ca2,ca3," + request("cb2") +"," + request("cb3") from ta where key=" + request("key")

其SQL语句原理如下。

insert into tb(key,ca2,ca3,cb2,cb3)
select key,ca2,ca3,999,888 from ta where key=12345
loveflea 2009-11-18
  • 打赏
  • 举报
回复
sorry,您可以用下面的语句插入,自己替换request_cb2\request_cb3\request_key

insert into tb(key,ca2,ca3,cb2,cb3)
select key,ca2,ca3,request_cb2,request_cb3 from ta where key=request_key
WWWWA 2009-11-18
  • 打赏
  • 举报
回复
insert into tb(key,ca2,ca3 )
select key,ca2,ca3 from ta where key=request
ACMAIN_CHM 2009-11-18
  • 打赏
  • 举报
回复
insert into tb(key,ca2,ca3)
select key,ca2,ca3 from ta


建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
loveflea 2009-11-18
  • 打赏
  • 举报
回复
insert into tb(key,ca2,ca3,cb2,cb3)
select key,ca2,ca3,ca2 as cb2,ca3 as cb3 from ta where key=request
libRA_kin 2009-11-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwwwa 的回复:]
insert into tb(key)
select key,ca2,ca3 from ta where key=request

自行修改一下
[/Quote]
这样就把 所有的数据都插入到 tb表了吗 cb2 cb3 呢
WWWWA 2009-11-18
  • 打赏
  • 举报
回复
insert into tb(key)
select key,ca2,ca3 from ta where key=request

自行修改一下

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧