0

table_1との私のデータtable_2

表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

テーブル_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

私は2つのステップでやりたいことをする方法しか知りません:

取得する最初の 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

次に、再度 table_1 と LEFT JOIN して 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

1 つの SQL だけで実行できますか?

4

2 に答える 2