gpt4 book ai didi

mysql - 从 MySQL 中的多个表中检索记录

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

如何从多个表中选择记录

表“用户”:user_id|用户名|电子邮件|登录名|密码

表“user_log”log_id|user_id|状态|时间戳|消息

表“users_balance”余额ID|用户ID|状态|金额

表“user_roles”角色 ID|状态|角色名称

表“user_role”角色 ID|用户 ID

如何通过用户电子邮件、日志状态和用户角色检索所有记录

输出:日志时间戳|用户ID|用户名|电子邮件|角色名称|余额金额|日志消息

最佳答案

我猜是这样的。

SELECT 
log.timestamp AS log_timestamp,
u.user_id,
u.username AS user_name,
u.email AS user_email,
role.name AS role_name,
bal.amount AS balance_amount,
log.message AS log_message
FROM users AS u
JOIN users_role AS ur ON ur.user_id = u.user_id
JOIN users_roles AS role ON role.role_id = ur.role_id
JOIN users_log AS log ON u.user_id = log.user_id
LEFT JOIN users_balance AS bal ON bal.user_id = u.user_id
WHERE u.email = @UserEmail
AND role.role_name = @RoleName
AND log.status = @LogStatus

然后根据您要查找的内容设置或替换 @UserEmail、@RoleName、@LogStatus 变量。

但根据数据,您可能需要添加 GROUP BY和一个aggregate function例如 MAX 或 SUM,也许还有 WHERE 或 HAVING 中的额外条件条款。

关于mysql - 从 MySQL 中的多个表中检索记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52362725/

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