我有一张桌子id sentUID recUID Amount1 1 2 1002 2 1 1003 4 2 1004 2 1 1005 8 6 1006 2 9 100我想像这样获得 userID 2 记录id sentUID recUID Amount1 1 2 1003 4 2 1006 2 9 100只有三个 UserID 1、4、9 发送或接收金额。
2 回答
HUH函数
TA贡献1836条经验 获得超4个赞
试试这个:
SELECT * FROM data WHERE id IN
(SELECT tab1.mId FROM
(SELECT MIN(id) as mId, CASE WHEN sentUID=2 THEN recUID
WHEN recUID=2 THEN sentUID
END AS person
FROM data WHERE recUID=2 OR sentUID=2
GROUP BY person)
AS tab1);
结果:
id sentUID recUID Amount
1 1 2 100
3 4 2 100
6 2 9 100
中间表tab1列出了以 2 出现的每个唯一 UID,用于计算最终结果:
mId person
1 1
3 4
6 9
http://sqlfiddle.com/#!9/16f6a5/13/0
- 2 回答
- 0 关注
- 93 浏览
添加回答
举报
0/150
提交
取消