You need to enable JavaScript to run this app. MySQL如何通过用户邮箱参数查询对应的订阅记录
优惠活动
大模型
产品
解决方案
定价
更多

MySQL如何通过用户邮箱参数查询对应的订阅记录

问题解答

结论

当然可以直接使用users表的用户邮箱作为查询参数获取匹配的所有订阅记录,你的表之间存在清晰的关联链:subscription 关联 orders,orders 关联 users,完全可以通过关联链反向用用户邮箱过滤订阅数据。

参考SQL语句

SELECT s.*, o.*, u.* -- 建议替换为实际需要的字段,避免重名问题
FROM subscription s
INNER JOIN orders o ON s.order_id = o.id
INNER JOIN users u ON u.id = o.user_id
WHERE u.email = 'test@mail.com' -- 替换为实际要查询的用户邮箱
ORDER BY s.created_at;

注意:如果需要返回所有匹配的订阅记录,去掉原SQL的LIMIT 1限制即可。

优化建议

  • 避免使用SELECT *,显式指定需要返回的字段,防止多个表重名字段(比如三个表都有id字段)被覆盖导致数据异常。
  • 如果频繁使用邮箱作为查询条件,建议给users.email字段添加普通索引,同时orders.user_id、subscription.order_id作为关联字段也建议添加索引,大幅提升关联查询效率。
  • 注意你测试数据中users表存储的邮箱是test@mail.com,orders表冗余存储的邮箱是test@email.com,筛选时注意匹配你业务需要的邮箱字段。

内容的提问来源于stack exchange,提问作者Peter Penzov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 05:54:03