Table A
item(char) relation(char) A 1,2,3 B 2,3,4 C 1,3,5 D 1,2,3,4 E 5,6
Table B
relay(int) stuff(int) 1 1 2 2 3 4 4 8 5 16 6 32 10 1048576
若希望他能變成:
Select A.item, Sum(B.stuff) as Result from A,B
Result
item Result (note)A 7 1,2,3 => SUM(1,2,4) B 14 2,3,4 =>SUM(2,4,8) C 21 1,3,5 =>SUM(1,4,16) D 15 1,2,3,4 =>SUM(1,2,4,8) E 48 5,6 =>SUM(16,32)
結果會不如預期
需要使用 FIND_IN_SET Func. 去做判斷:
SELECT A.item, sum( B.stuff) AS Result FROM A,B
WHERE FIND_IN_SET( B.relay, A.relation)
GROUP BY A.item ORDER BY A.item
結果看似滿意!
......... BUT......
如果 A的connection內 有一筆
A.connection="05,06"
甚至只是個 Space
A.connection="5, 6"
結果就令人傻眼.....@_@"
沒有留言:
張貼留言