我的不好,它没有用,因为其中一张表没有加载,IT工作......
我正在寻找为两个不同的连接路径只有两个值的报表创建一个表,我不知道该怎么做,下面是我想要实现的一个例子。
+--------------------+
| 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
答案 0 :(得分:0)
试试这个
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
上获得更多文档。希望这会有所帮助。