我有(几个表说)4个表,A,B,C和D,它们通过一些常见的值链接,如:
TableA(A1,A2,A3,A4) ---> TableB(A1,B2,B3,B4) ---> TableC(C1,C2,B3,C4) ---> TableD(D1,D2,D3,C4)
| |
TableX(X1,B2,X3,X4) TableY(Y1,Y2,Y3,C4)
对于A2
的每个唯一值,都有一个值A1
。 A1
中存在相同的值TableB
。
同样在TableB
中,对于A1
的每个值,都有一些特定值B2,B3,B4
,
同样在TableC
和TableD
中,对于B3
和C4
的每个值,都有特定的剩余值。
除了线性流之外,中间还有多个流(如从TableB到TableX或TableC到TableY)
如果我的值为A1,A2,B2,C1,D1
,我想提取一些列,例如C4
和A2
。
我是这类查询的新手,没有时间完成任务。
提前感谢您的帮助。
答案 0 :(得分:0)
您必须使用这样的多重连接:
Select TableA.A1,TableA.A2,TableB.B2,TableC.C1,TableC.C4 from
TableA join TableB on TableA.A1=TableB.A1
join TableC on TableB.B3=TableC.B3
where A2='....'
答案 1 :(得分:0)
尽管一个糟糕的问题发布的表格和解释样本不佳,但首先要查看如何将所有字段绑定在一起。一旦建立了所有JOIN条件,那么添加您正在寻找数据
中特定元素的WHEREselect *
from
TableA a
JOIN TableB b
on a.A1 = b.A1
JOIN TableC c
on b.b3 = c.b3
JOIN TableD d
on c.c4 = d.c4
where
a.field = '?'
AND d.field = '?'
或您正在寻找的任何标准......并且只使用别名引用,例如(a,b,c,d)
从布局中注意我有我的SQL,你可以通过简单的视觉缩进和各个表之间非常清晰的列关系来准确地看到一个表如何连接到另一个表的层次结构。