Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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
Oracle内部/外部/完全联接_Oracle_Join_Inner Join_Outer Join - Fatal编程技术网

Oracle内部/外部/完全联接

Oracle内部/外部/完全联接,oracle,join,inner-join,outer-join,Oracle,Join,Inner Join,Outer Join,我有两张桌子。表一和表二 在表1中,我有两列table1.userid和table2.full_name,在表2中,我有两列table2.userid和table2.ssn 我想要用户ID同时出现在表1和表2中的记录 如果在表2中存在用户ID在表1中的记录,则应忽略这些记录。如果不存在,则还需要表1中的数据。还需要表2中的其余数据 我应该使用内部/外部/完全连接吗 您能帮我做同样的事情吗。如果您想要两个表中都存在的用户IDs,那么请使用内部联接: select . . . from table1

我有两张桌子。表一和表二

在表1中,我有两列table1.userid和table2.full_name,在表2中,我有两列table2.userid和table2.ssn

我想要用户ID同时出现在表1和表2中的记录

如果在表2中存在用户ID在表1中的记录,则应忽略这些记录。如果不存在,则还需要表1中的数据。还需要表2中的其余数据

我应该使用内部/外部/完全连接吗


您能帮我做同样的事情吗。

如果您想要两个表中都存在的
用户ID
s,那么请使用
内部联接

select . . .
from table1 t1 inner join
     table2 t2
     on t1.userid = t2.userid;
select . . .
from table1 t1 left outer join
     table2 t2
     on t1.userid = t2.userid;
select . . .
from table1 t1 full outer join
     table2 t2
     on t1.userid = t2.userid;
如果您想要
表1
中的所有
用户ID
,请使用
左侧外部联接

select . . .
from table1 t1 inner join
     table2 t2
     on t1.userid = t2.userid;
select . . .
from table1 t1 left outer join
     table2 t2
     on t1.userid = t2.userid;
select . . .
from table1 t1 full outer join
     table2 t2
     on t1.userid = t2.userid;
如果您想要两个表中的所有
用户标识
s,则使用
完全外部联接

select . . .
from table1 t1 inner join
     table2 t2
     on t1.userid = t2.userid;
select . . .
from table1 t1 left outer join
     table2 t2
     on t1.userid = t2.userid;
select . . .
from table1 t1 full outer join
     table2 t2
     on t1.userid = t2.userid;

如果希望两个表中都有
userid
s,请使用
internaljoin

select . . .
from table1 t1 inner join
     table2 t2
     on t1.userid = t2.userid;
select . . .
from table1 t1 left outer join
     table2 t2
     on t1.userid = t2.userid;
select . . .
from table1 t1 full outer join
     table2 t2
     on t1.userid = t2.userid;
如果您想要
表1
中的所有
用户ID
,请使用
左侧外部联接

select . . .
from table1 t1 inner join
     table2 t2
     on t1.userid = t2.userid;
select . . .
from table1 t1 left outer join
     table2 t2
     on t1.userid = t2.userid;
select . . .
from table1 t1 full outer join
     table2 t2
     on t1.userid = t2.userid;
如果您想要两个表中的所有
用户标识
s,则使用
完全外部联接

select . . .
from table1 t1 inner join
     table2 t2
     on t1.userid = t2.userid;
select . . .
from table1 t1 left outer join
     table2 t2
     on t1.userid = t2.userid;
select . . .
from table1 t1 full outer join
     table2 t2
     on t1.userid = t2.userid;

表1的值为1 |约翰| 11、2 |克里斯蒂娜| 22、3 |哈维| 1111、4 |彼得| 666,表2的值为3 | 33、4 | 44。在这两个表中,都有3个和4个以上的用户ID。如果它们很常见,我想从表2而不是表1中获取它们。表1和表2中剩余的用户ID也应该出现在我的select查询中。所以最终结果应该是1 |约翰| 111,2 |克里斯汀| 22,3 |哈维| 33,4 |彼得| 44。@user1251973。删除这个问题或修改它,使用样本数据和您想要的结果。我有表1,值为1 | john | 11,2 | christine | 22,3 | xavi | 1111,4 | peter | 666,表2,值为3 | 33,4 | 44。在这两个表中,都有3个和4个以上的用户ID。如果它们很常见,我想从表2而不是表1中获取它们。表1和表2中剩余的用户ID也应该出现在我的select查询中。所以最终结果应该是1 |约翰| 111,2 |克里斯汀| 22,3 |哈维| 33,4 |彼得| 44。@user1251973。删除此问题或使用示例数据和所需结果对其进行修改。