gpt4 book ai didi

mysql - 在 Mysql 中使用 join、sum 和 group by

转载 作者:行者123 更新时间:2023-11-29 15:16:10 26 4
gpt4 key购买 nike

首先,我有 3 个表,表的名称是“users”、“references”和“operations”。

结构如下..

users
+----+------------+----------------+
| id | name | referance_code |
+----+------------+----------------+
| 1 | Jack | 11111111 |
| 2 | Rose | 22222222 |
| 3 | Einstein | 33333333 |
| 4 | Che | 44444444 |
| 5 | Recep | 55555555 |
+----+------------+----------------+

用户相互引用的中间表,
*如果在references表中注册的用户id也与users表中的id相关联,则users表中的reference code字段由references表中的“reference_user_id”字段绑定(bind)。
referances
+----+------------------+-------------------+
| id |register_user_id | referance_user_id |
+----+------------------+-------------------+
| 1 | 2 | 11111111 |
| 2 | 3 | 11111111 |
| 3 | 4 | 22222222 |
| 4 | 5 | 33333333 |
| 5 | 6 | 44444444 |
+----+------------------+-------------------+

我最后一张交易表
transactions
+-----+--------------------+-------+-----------------------------+
| id | amount | user_id | type | referance_register_user_id |
+-----+----------+---------+-------+-----------------------------+
| 1 | +200 | 1 | 4 | 3 |
| 2 | +200 | 1 | 8 | 2 |
| 3 | -300 | 3 | 4 | 5 |
| 4 | -400 | 4 | 4 | 3 |
| 5 | -400 | 5 | 4 | 5 |
| 6 | -500 | 1 | 6 | 3 |
| 7 | -400 | 2 | 4 | 5 |
| 8 | -300 | 3 | 4 | 5 |
| 9 | -200 | 4 | 4 | 3 |
| 10 | -400 | 5 | 3 | 5 |
| 11 | -100 | 3 | 4 | 5 |
| 12 | -300 | 2 | 4 | 5 |
| 13 | -200 | 1 | 4 | 5 |
| 14 | +300 | 1 | 4 | 2 |
| 15 | +500 | 1 | 4 | 3 |
+-----+-----------+---------+-------+----------------------------+

sql output
+-----------+--------+
| username | amount |
+-----------+--------+
| Rose | 500 |
| Einstein | 700 |
+-----------+--------+

我想为“Jack”用户写一个代码,首先连接到references表,然后用references表中的“register_user_id”连接到操作表并获取id,referenced_register_user,引用类型4和8,得到金额字段。

我希望输出是这样的
  • 所以你自己的user_id from user_id = 1
  • 类型 4 或 8
  • 最后引用_注册_用户_id 2 AND 3
  • 最佳答案

    万一有人想看到它,我解决了这个问题,我在下面写的代码给出了我想要的输出

    SELECT Sum(t.amount) AS amount, 
    r.register_user_id,
    r.referance_user_id,
    u.id u_id,
    u.username,
    u.email,
    t.amount,
    t.user_id,
    t.type,
    t.referance_register_user_id
    FROM referances r
    LEFT JOIN users u
    ON u.id = r.register_user_id
    LEFT JOIN transactions t
    ON r.register_user_id = t.referance_register_user_id
    WHERE r.referance_user_id = '11111111'
    AND user_id = '1'
    AND ( t.type = 4
    OR t.type = 8 )
    GROUP BY t.referance_register_user_id
    ORDER BY amount DESC

    关于mysql - 在 Mysql 中使用 join、sum 和 group by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59685364/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com