我想往一个表中插一条数据,但其中某一列的值需要从另一个表中关联取到。类似的SQL语句如下:
INSERT INTO TABLE_A
(TABLE_A_AREA,TABLE_A_TIME,
TABLE_A_SHORTNAME,TABLE_A_TEL,TABLE_A_ID)
VALUES ( SELECT TABLE_B_ID FROM TABLE_B_INFO WHERE TABLE_A_NAME = '西城',TO_CHAR(SYSDATE,'YYYY-MM-DD'),
'王府井','199390382890',S_TABLE_A_ID.NEXTVAL)但我知道第二个SELECT的地方肯定不能这么用,我应该如何实现?还是必须先执行一条SQL语句,获取到这个值再插入到TABLE_A表中?
INSERT INTO TABLE_A
(TABLE_A_AREA,TABLE_A_TIME,
TABLE_A_SHORTNAME,TABLE_A_TEL,TABLE_A_ID)
VALUES ( SELECT TABLE_B_ID FROM TABLE_B_INFO WHERE TABLE_A_NAME = '西城',TO_CHAR(SYSDATE,'YYYY-MM-DD'),
'王府井','199390382890',S_TABLE_A_ID.NEXTVAL)但我知道第二个SELECT的地方肯定不能这么用,我应该如何实现?还是必须先执行一条SQL语句,获取到这个值再插入到TABLE_A表中?
解决方案 »
- 求助:windows群集下如何实现oracle冷迁
- 大家帮忙看看Oracle存储过程怎样给变量赋值。。。。。
- 求oracle语句
- 直接通过SQL语句能否select出的结果集保存成文件
- 请教卸载oracle问题
- 这个奇怪的时间字段问题如何解决?
- 如何从一个2G大小的外部数据文件中通过BFILE中获得其中超过20M大小的数据?
- 用一年了都没有问题今天突然出错,大家帮人看看
- 当成功从令一台机器exp后,是否只要把dmp文件拿到自己的机器上导入,还是也要别的文件?
- 请教一个ORACLE排序+分组的一个SQL
- Oracle 10g 的isqlplus如何在浏览器中登陆
- SQL server 语句 转 Oracle 语句
表A中有字段:TABLE_A_AREA
表B中有字段:TABLE_B_AREA 和TABLE_B_ID
在插入表A字段TABLE_A_AREA时,需要从表B中根据字段TABLE_B_AREA 找出字段TABLE_B_ID,插入表A的字段TABLE_A_AREA.
(TABLE_A_AREA,TABLE_A_TIME,TABLE_A_SHORTNAME,TABLE_A_TEL,TABLE_A_ID)( SELECT
TABLE_B_AREA,TABLE_B_TIME,TABLE_B_SHORTNAME,TABLE_B_TEL,TABLE_B_ID
FROM TABLE_B_INFO WHERE TABLE_A_NAME = '西城')
SELECT TABLE_B_ID FROM TABLE_B_INFO WHERE TABLE_A_NAME = '西城' 岂不是有多个值了吗
这样你怎么向TABLE_A 插?再说根据你提供的关系这个where条件好像有问题呀?
(TABLE_A_AREA)
SELECT TABLE_B_ID FROM TABLE_B_INFO WHERE TABLE_A_NAME = '西城',TO_CHAR(SYSDATE,'YYYY-MM-DD'),
'王府井','199390382890',S_TABLE_A_ID.NEXTVAL);
(TABLE_A_AREA,TABLE_A_TIME,
TABLE_A_SHORTNAME,TABLE_A_TEL,TABLE_A_ID)
SELECT TABLE_B_ID,TO_CHAR(SYSDATE,'YYYY-MM-DD'),
'王府井','199390382890',S_TABLE_A_ID.NEXTVAL
FROM TABLE_B_INFO WHERE TABLE_A_NAME = '西城'
INSERT INTO TABLE_A
(TABLE_A_AREA,TABLE_A_TIME,
TABLE_A_SHORTNAME,TABLE_A_TEL,TABLE_A_ID)
SELECT TABLE_B_ID ,TO_CHAR(SYSDATE,'YYYY-MM-DD'),'王府井','199390382890',S_TABLE_A_ID.NEXTVAL
FROM TABLE_B_INFO WHERE TABLE_A_NAME = '西城' ;
INSERT INTO TABLE_A
(TABLE_A_AREA,TABLE_A_TIME,TABLE_A_SHORTNAME,TABLE_A_TEL,TABLE_A_ID)
SELECT TABLE_B_ID,TO_CHAR(SYSDATE,'YYYY-MM-DD'),'王府井','199390382890',S_TABLE_A_ID.NEXTVAL
FROM TABLE_B_INFO WHERE TABLE_A_NAME = '西城';