Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 合并表并更新一列_Sql_Oracle - Fatal编程技术网

Sql 合并表并更新一列

Sql 合并表并更新一列,sql,oracle,Sql,Oracle,我正在使用Oracle,我需要合并两个查询,但我想在末尾添加一列,显示我将值设置为“query2”的位置,这意味着这是来自query2的结果 到目前为止,这是我的例子 select t1.* , t2.* , 0 isdefault from table1 t1, table2 t2 where .... union select t1.*,t2.*, t3.isdefault from table1 t1, tabl

我正在使用Oracle,我需要合并两个查询,但我想在末尾添加一列,显示我将值设置为“query2”的位置,这意味着这是来自query2的结果

到目前为止,这是我的例子

select t1.* , t2.* , 0 isdefault
  from table1 t1, table2 t2 
 where ....                  
union           
select t1.*,t2.*, t3.isdefault    
  from table1 t1, table2 t2, table3 t3
 where ... 
   and t3.inactive = 0;

静态定义值,就像您为
isdefault
提供的那样:

SELECT t1.*, t2.*, 0 isdefault, 'query1' AS whichQuery
  FROM table1 t1, 
       table2 t2 
 WHERE ...
UNION           
SELECT t1.*,t2.*, t3.isdefault, 'query2' AS whichQuery
  FROM table1 t1, 
       table2 t2,
       table3 t3
 WHERE ... 
   AND t3.inactive = 0;

现在我有了重复的记录,一个是query1,另一个是query2,如何删除其中一个?因为t3.isdefault可以是0@user1111111:您必须提供查询详细信息,但我相信您可能会从任一查询中获得笛卡尔积。。。或者有多个子记录与父记录关联。外部联接可能比联合更有效地完成您需要的工作