【问题标题】:How to get two values from two different join paths?如何从两个不同的连接路径中获取两个值?
【发布时间】:2016-11-08 22:13:46
【问题描述】:

我的错,它没有工作,因为其中一张表没有加载,它工作......

我正在为一个只有来自两个不同连接路径的两个值的报表创建一个表,但我不知道该怎么做,下面是我想要实现的示例。

+--------------------+
|        Table1      |
+--------+-----+-----+
| idA    | idB | idC |
+--------+-----+-----+

+--------------------+
|        Table2      |
+--------+-----+-----+
| idA    | idB | idD |
+--------+-----+-----+

+--------------------+
|        Table3      |
+----------+---------+
| idD      | value1  |
+----------+---------+

+--------------------+
|        Table4      |
+----------+---------+
| idC      |   idE   |
+----------+---------+

+--------------------+
|        Table5      |
+----------+---------+
| idE      | value2  |
+----------+---------+

我需要两个值,value1 和 value2

我试过这个:

SELECT Table3.value1, Table5.value2
  FROM Table1
  INNER JOIN Table2 ON Table1.idA = Table2.idB
  AND Table1.idB = Table2.idB  
  INNER JOIN Table3 ON Table2.idD = Table3.idD
  INNER JOIN Table4 ON Table1.idC = Table4.idC
  INNER JOIN Table5 ON Table4.idE = Table5.idE

【问题讨论】:

    标签: sql sql-server vb.net


    【解决方案1】:

    试试这个

    SELECT 
      Table3.value1, Table5.value2
    FROM 
      Table1
    JOIN 
      Table2 
    ON 
      Table1.idB = Table2.idB
    JOIN
      Table3
    ON
      Table2.idD  = Table3.idD
    JOIN 
      Table4
    ON 
      Table1.idC = Table4.idC
    JOIN
      Table5
    ON
      Table4.idE = Table5.idE
    -- WHERE
    -- Table1.idA = [whatever]  -- hardly suggest to filter your query
    

    我最后几乎不建议您过滤数据。这个答案是DB Schema Agnostic,这意味着我不确定您的架构是如何工作的,但是查询是COUNTING,因为在所有表中至少有一个匹配的行。如果不是这种情况,您可能需要使用left outer 连接并添加一些null checking。这个概念几乎是一样的,我称之为dragging ids 一直到需要它们的地方:)。希望这是有道理的。我也不建议您在SQL JOIN 上获取更多文档。希望这会有所帮助。

    【讨论】:

    • 我的错,它没有工作,因为其中一张桌子没有加载,它工作......感谢大卫埃斯皮诺的回答!
    • 如果答案是正确的......你介意投票给@rodixxi吗? :D 非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-17
    • 2021-06-21
    相关资源
    最近更新 更多