【问题标题】:Oracle Inner/Outer/Full JoinOracle 内/外/全联接
【发布时间】:2013-09-04 03:12:54
【问题描述】:

我有两个表 table1 和 table2

在 table1 我有两列 table1.userid 和 table2.full_name 在 table2 我有两列 table2.userid 和 table2.ssn

我想要 table1 和 table2 中都存在用户 ID 的记录。

如果 table2 中存在 userid 的记录,则应忽略它们。如果不存在,则还需要 table1 中的数据。还想要 table2 中的其余数据。

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

你能帮我做同样的事情吗?

【问题讨论】:

    标签: oracle join inner-join outer-join


    【解决方案1】:

    如果您希望userids 出现在两个 表中,请使用inner join

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

    如果你想要所有userids 在table1,然后使用left outer join

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

    如果您想要所有两个表中的useridss,则使用full outer join

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

    【讨论】:

    • 我有值为 1|john|11、2|christine|22、3|xavi|1111、4|peter|666 的 table1 和值为 3|33、4|44 的 table2。两个表中都超过 3 和 4 个用户 ID。如果它们比我想从table2而不是从table1中获取它更常见。来自 table1 和 table2 的剩余用户 ID 也应该出现在我的选择查询中。所以最终结果应该是 1|john|111, 2|christine|22, 3|xavi|33, 4|peter|44。
    • @user1251973 。 . .使用示例数据和您想要的结果删除或修改此问题。
    猜你喜欢
    • 2018-05-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 2011-07-26
    • 2017-06-27
    相关资源
    最近更新 更多