sql查询从多个表中获取数据

时间:2014-10-03 08:56:08

标签: mysql sql

我有(几个表说)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的每个唯一值,都有一个值A1A1中存在相同的值TableB。 同样在TableB中,对于A1的每个值,都有一些特定值B2,B3,B4, 同样在TableCTableD中,对于B3C4的每个值,都有特定的剩余值。

除了线性流之外,中间还有多个流(如从TableB到TableX或TableC到TableY)

如果我的值为A1,A2,B2,C1,D1,我想提取一些列,例如C4A2

我是这类查询的新手,没有时间完成任务。

提前感谢您的帮助。

2 个答案:

答案 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条件,那么添加您正在寻找数据

中特定元素的WHERE
select *
   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,你可以通过简单的视觉缩进和各个表之间非常清晰的列关系来准确地看到一个表如何连接到另一个表的层次结构。