gpt4 book ai didi

mysql - 为每个用户选择一个值,即使没有 sql

转载 作者:行者123 更新时间:2023-11-29 06:37:23 25 4
gpt4 key购买 nike

我有一个银行交易表,我正在尝试创建一个 View 来保 stub 据卡类型注册的每个用户的余额。因此,即使用户从未进行过交易,我也希望它显示为

---------------------
| user_id | balance |
---------------------
| 1 | 0.0 |
---------------------

但是当我执行没有事务的查询时:

SELECT u.id AS user_id, SUM(amount) AS balance FROM `transactions` t
INNER JOIN users u
ON t.from_id = u.id
WHERE card_type = 'debit'

它返回:

---------------------
| user_id | balance |
---------------------
| null | null |
---------------------

因此,如果可能的话,如何检索表中没有事务的第一个结果?

最佳答案

您正在寻找外部联接 - 和分组依据:

SELECT u.id AS user_id, COALESCE(SUM(t.amount), 0) AS balance
FROM users u LEFT JOIN
transactions t
ON t.from_id = u.id AND
t.card_type = 'debit'
GROUP BY u.id;

注释:

  • 您需要所有用户,因此它是LEFT JOIN中的第一个表。
  • 您希望每个用户只有一行,因此需要 GROUP BY u.id
  • 您正在对第二个表进行过滤,因此过滤器位于ON子句中。

关于mysql - 为每个用户选择一个值,即使没有 sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53189045/

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