0

実行したいやや複雑な mySQL クエリがあり、その記述方法を考えるのに苦労しています。

基本的に私は3つのテーブルを持っています:

a(aid, name);
b(bid, val);
ab(aid, bid)

私がやりたいのは、次のようなテーブルを作成するクエリを作成することです:

c(aid, valSum);

valSum を 0 から開始し、援助と入札の間のすべての関係のbid.val の値を追加します。

例えば:

a:
+-----+------+
| aid | name |
+-----+------+
| 1   |  Joe |
| 2   |  Jon |
| 3   |  Max |
+-----+------+

b:
+-----+-----+
| bid | val |
+-----+-----+
| 1   |   2 |
| 2   |   4 |
| 3   |   6 |
+-----+-----+

ab:
+-----+-----+
| aid | bid |
+-----+-----+
| 1   |   1 |
| 1   |   2 |
| 2   |   2 |
| 2   |   3 |
| 3   |   1 |
| 3   |   2 |
| 3   |   3 |
+-----+-----+

c:
+-----+--------+
| aid | valSum |
+-----+--------+
| 1   |      6 |
| 2   |     10 |
| 3   |     12 |
+-----+--------+
4

2 に答える 2

4

以下のようなもの:

SELECT a.aid, SUM(b.val) AS valSum
FROM a
INNER JOIN ab ON a.aid = ab.aid
INNER JOIN b ON ab.bid = b.bid
GROUP BY a.aid
于 2013-05-01T03:34:38.860 に答える