【发布时间】:2013-10-24 09:52:14
【问题描述】:
我在table_1 和table_2 中的数据。
table_1
id id_1 num ids_2
1 3 33 666,777,888
2 3 333 6666,7777,8888
3 4 44 111,222,333
4 4 444 1111,2222,3333
table_2
id_2 num
111 1
222 2
333 3
1111 1
2222 2
3333 3
666 6
777 7
888 8
6666 6
7777 7
8888 8
我只知道如何做我想做的两步:
要获得的第一个 LEFT JOIN:
SELECT t1.id_1, sum(t2.num)
FROM table_1 AS t1
LEFT JOIN table_2 AS t2
ON FIND_IN_SET(t2.id_2, t1.ids_2)
GROUP BY t1.id_1;
id_1 sum(t2.num)
3 6+7+8+6+7+8
4 1+2+3+1+2+3
然后 LEFT JOIN 与 table_1 再次 sum(table_1.num)+sum(table_2.num):
id_1 sum(table_1.num)+sum(table_2.num)
3 6+7+8+6+7+8+33+333
4 1+2+3+1+2+3+44+444
我可以只用一个 SQL 来做吗?
【问题讨论】:
-
是的,您只需一个 SQL 即可完成
-
在
Table_1中id_1和num的组合是唯一的???? -
table_1 中还有另一个唯一字段,例如 id(table_1 已更新)。
-
现在我的问题是,在 (id_1,num) 列中是否存在多个 (3,33) 条目?
-
不,没有。 (id_1, num) 的组合是唯一的。