sql - FULL OUTER JOIN有点内

标签 sql sql-server inner-join full-outer-join

这是我面临的问题:

  • 我从客户端
  • 收到了预期的Xs
  • 我收到公司的已实现X
    代理商
  • 我必须完全外部加入
    预期的和已实现的代码X
    等于与他们一样远
    相同的作业文件

  • 例如 :
    Realized Xs for job file #123 : A and B
    Expected Xs for job file #123 : A and C
    Expected Xs for job file #456 : B
    

    预期结果 :
    Job_File Realized Expected
    -------- -------- --------
    123      A        A
    123      B        NULL
    123      NULL     C
    456      NULL     B
    

    当然,123的已实现 B 绝不应该与456的预期 B 匹配,因为它们不属于同一作业文件。

    因此,就好像我想同时在代码中同时填充外部联接和在作业文件ID上进行内部联接一样。

    这似乎很奇怪,但是……实际上很合逻辑。我到底该怎么做?

    预先非常感谢您的宝贵帮助! :-)

    最佳答案

    您只需要在两个条件而不是一个条件下加入!

    SELECT COALESCE(realized.Job_File, expected.Job_File), 
           realized.code, 
           expected.code
    FROM realized 
        FULL OUTER JOIN expected 
            ON realized.Job_File = expected.Job_File 
            AND realized.Code = expected.Code 
    

    关于sql - FULL OUTER JOIN有点内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6584833/

    相关文章:

    sql - 加入所有字段而不列出它们?

    sql - 在 postgresql 表中查找最大条目,sql

    SQL - 子查询和外表之间的关系

    sql - 是否可以在数据库中找到所有具有系统生成名称的主键?

    sql-server - 判断事务是否有未提交的更新

    sql - 带有两个内连接的 PostgreSQL 查询

    php - 使用来自多个表的信息输入新的/编辑现有的数据库记录

    mysql - 如何在 MySQL 中执行具有不同 ID 的计算?

    java - 直接从命令行运行 .class 时为 "ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver"

    php - 更新数据库数据失败