【问题标题】:SQL INNER JOIN for basic request基本请求的 SQL INNER JOIN
【发布时间】:2021-08-03 18:11:14
【问题描述】:

我正在寻找以下问题的解决方案:

  • 表 #1:文章 ID,职位编号
  • 表 #2:作业编号、客户作业编号
  • 表 #3:客户工作编号、文章 ID、价格

代码:

SELECT 
    Table3.Price, ...
FROM 
    Table1
INNER JOIN ?

我怎样才能完成这个内连接,让文章的价格在结果中?每个文章 ID 有多个价格,但文章 ID 和客户作业编号或作业编号的组合是唯一的。每个客户作业编号恰好有一个作业编号。我不想更改 select 或 from 中的任何内容,因为这只是更大查询的一部分,并且那里的更改会搞砸。

请您原谅我提出这样一个初学者的问题,但我就是做错了。 谢谢你的回答。

【问题讨论】:

    标签: sql inner-join


    【解决方案1】:
    If you are using Oracle 19c ANSI , you can use 
    
    SELECT *
    FROM Table1 t1,Table2 t2, Table3 t3
    where t1.jobNr= t2.jobNr
    and t2.CustomerJobNr = t3.CustomerJobNr
    AND t1.ArticleId = t3.ArticleId;
    

    【讨论】:

      【解决方案2】:

      如果不查看样本数据集,很难确定,但如果您的条件正确:

      “文章 ID 和客户职位编号或职位编号的组合是唯一的”

      以下查询应该会产生您正在寻找的结果:

      SELECT distinct
          Table3.Price, Table1.ArticleID, Table1.Job_Nr, t2.CustomerJobNr,
      FROM 
          Table1 JOIN Table2 AND Table3
          ON (Table1.Job_Nr = Table2.Job_Nr or t2.CustomerJobNr = t3.CustomerJobNr)
          and Table1.ArticleID = Table3.ArticleID 
          
      

      同样,如果您陈述的假设不正确,这可能不会产生预期结果。

      【讨论】:

        【解决方案3】:

        您可以对目标表使用多个JOINs。

        例如:

        SELECT ...
        FROM Table1
        INNER JOIN Table2 
        ON Table1.ArticleId = Table2.ArticleId
        INNER JOIN Table3
        ON Table2.CustomerJobNr = Table3.CustomerJobNr
        AND Table1.ArticleId = Table2.ArticleId
        

        【讨论】:

          【解决方案4】:

          你可以使用:

          SELECT *
          FROM Table1
          JOIN Table2 
          ON Table1.ArticleId = Table2.ArticleId
          JOIN Table3
          ON Table2.CustomerJobNr = Table3.CustomerJobNr
          AND Table1.ArticleId = Table2.ArticleId
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-12-05
            • 1970-01-01
            • 2018-03-09
            • 2013-07-01
            • 2011-12-19
            • 2018-06-24
            • 2013-07-19
            • 1970-01-01
            相关资源
            最近更新 更多