我有三个表t1,t2,t3
T1有一个主键p1
T2具有参考表T1
的主键L1和外键p1
T3具有参考表T2的主键W1和外键L1。
在表T2中,对应每个P1值可能存在许多L1值,并且对于每个L1值,在表T3中可能存在许多W1值。想象在表T3中有一个名为X的列,I需要x的值之和作为表T3中相应的L1值。
--------- --------- --------- | t1 | | t2 | | t3 | --------- --------- --------- |p1 (PK)| 1 * |L1 (PK)| 1 * |W1 (PK)| | | ---- |p1 (FK)| ---- |L1 (FK)| | | (p1) | | (L1) |X | --------- --------- ---------
答案 0 :(得分:1)
你的结构并不完全清楚,但其中一个可能会让你前进:
SELECT SUM(T3.x)
FROM T1
INNER JOIN T2 on T1.P1 = T2.P1
INNER JOIN T3 ON T2.L1 = T3.L1
或
SELECT SUM(x)
FROM T3
WHERE L1 IN
(SELECT L1 FROM T2 INNER JOIN T1 ON T2.P1 = T1.P1)
答案 1 :(得分:0)
想象一下,表T3中有一个名为X的列,我需要总和 表T3中相应L1值的x值。
这得到T3中的X的和,其中FK L1在T2:
SELECT SUM(X) FROM T3
WHERE L1 IN (SELECT W1 FROM T2)