我的示例数据如下所示,我的问题是如何根据提供的输入电子邮件查找朋友的电子邮件

| users |

| user_id | email |

|---------|--------------------------|

| 1 | ashutosh8657@example.com |

| 2 | Kanchhi@example.com |

| 3 | modi@example.com |

| 4 | andy@example.com |

| 5 | maya@example.com |

| 6 | jetli@example.com |

| 7 | john@example.com |

| user_relations |

| user_relation_id | requestor_user_id | receiver_user_id | friend_status |

|------------------|-------------------|------------------|---------------|

| 1 | 2 | 4 | 1 |

| 2 | 2 | 6 | 1 |

| 3 | 2 | 7 | 1 |

| 4 | 5 | 2 | NULL |

| 5 | 5 | 7 | NULL |

| 6 | 7 | 2 | NULL |

| 7 | 7 | 4 | 1 |

| 8 | 7 | 5 | 1 |

| 9 | 7 | 6 | 1 |

| 10 | 4 | 2 | 1 |

| 11 | 4 | 3 | 1 |

| 12 | 4 | 5 | 1 |

| 13 | 4 | 6 | 1 |

| 14 | 4 | 7 | 1 |

例1:假设,如果我提供以下输入作为电子邮件:

john@example.com

然后我的预期输出应该是这个(顺序无关紧要):

andy@example.com

jetli@example.com

Kanchhi@example.com

maya@example.com

这里,在user_relations表john@example.com中,其userId为7,对于userId 7,你可以看到朋友是UserIds 4,6,2,5,因此我需要4,6,2,5的电子邮件地址

如果friend_status的值为1,则只考虑朋友,除了1之外他们不是恶魔.我尝试过这个查询,但结果为零.请帮忙

SELECT

case when u.user_id = r.receiver_user_id then requestor.email else receiver.email end as friend_email

FROM users u

JOIN user_relations r

ON (r.requestor_user_id = u.user_id OR r.receiver_user_id = u.user_id)

AND r.friend_status = 1

LEFT JOIN users requestor ON requestor.user_id = r.requestor_user_id

LEFT JOIN users receiver ON receiver.user_id = r.receiver_user_id

WHERE u.email in ('john@example.com')

GROUP BY friend_email

HAVING COUNT(DISTINCT u.user_id) > 1

mysql查询不到邮件_mysql – sql查询通过电子邮件获取用户列表相关推荐

  1. MySQL与OLAP:分析型SQL查询最佳实践探索

    搞点多维分析,糙快猛的解决方式就是使用ROLAP(关系型OLAP)了.数据经维度建模后存储在MySQL,ROLAP引擎(比方开源的Mondrian)负责将OLAP请求转化为SQL语句提交给数据库.OL ...

  2. MySQL数据库基础(五)——SQL查询

    MySQL数据库基础(五)--SQL查询 一.单表查询 1.查询所有字段 在SELECT语句中使用星号""通配符查询所有字段 在SELECT语句中指定所有字段 select fro ...

  3. mysql 慢查询日志的作用_MySQL慢查询日志的作用和开启

    前言 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中.lon ...

  4. mysql慢查询开启语句分析_mysql慢查询语句分析总结

    我们经常会接触到MySQL,也经常会遇到一些MySQL的性能问题.我们可以借助慢查询日志和explain命令初步分析出SQL语句存在的性能问题 通过SHOW FULL PROCESSLIST查看问题 ...

  5. 在mysql怎样查询地址和电话_Mysql数据查询

    Mysql查询 数据多次过滤 条件:from.where.group by.having.distinct.order by.limit => 层层筛选后的结果 查: select [disti ...

  6. mysql 日志抓取变化_MySQL慢查询日志分析提取【转】

    原文:https://www.cnblogs.com/skymyyang/p/7239010.html 一:查询slow log的状态,如示例代码所示,则slow log已经开启. mysql> ...

  7. mysql查询id为偶数_MySQL中查询中位数?

    导读:计算中位数可能是小学的内容,然而在数据库查询中实现却并不是一件容易的事.我们今天就来看看都有哪些方法可以实现. 注:本文所用MySQL版本无限制,所列题目均来源于LeetCode. LeetCo ...

  8. MySQL基础架构:一条SQL“查询语句”是如何执行的

    0. MySQL的基础架构图: (图片来自极客时间:https://time.geekbang.org/column/article/68319) 大体来说,MySQL可以分为Server层(服务器层 ...

  9. 怎样知道mysql的驱动是什么_MySQL连接查询到底什么是驱动表?看了这里你应该就明白了...

    作者:阿伟~ 链接:https://www.cnblogs.com/sy270321/p/12760211.html 准备我们需要的表结构和数据 两张表 studnet(学生)表和score(成绩)表 ...

最新文章

  1. 史上最正确的achemy安装方法
  2. web网站无法启动报错
  3. 如何用 Netty 设计一个百万级推送服务?
  4. bank holiday in uk 2020
  5. nyoj 133 子序列(尺取法+离散化)
  6. String类型的字符长度(码点/代码单元的区别)
  7. lol韩服游戏内设置_lol韩服游戏内设置界面翻译
  8. 485通讯转换器产品功能特点介绍
  9. 兼容门:先卸载腾讯QQ,再卸载360软件!
  10. java不规则算法_分布式id生成算法 snowflake 详解
  11. java正则表达 w,超强变态的正则(\w)((?=\1\1\1)(\1))+讲解
  12. 数据结构学习笔记:时间复杂度
  13. 怎样设计访谈提纲_服务设计简史
  14. 了解计算机PS,PS教程:你应该了解的PS基础绘图工具
  15. java实现ftl文件转图片
  16. 机房重构总结之步履蹒跚
  17. 泊松分布(Poisson Distribution)
  18. 常用排序算法总结与英文翻译
  19. 技术人员成长路线感悟
  20. 大道至简 知易行难 C# 完成WebSocket demo 用GoEasy实现Hello world

热门文章

  1. 利用SQL Server EXISTS结构
  2. 如何:从 Windows 窗体 DataGridView 控件中移除自动生成的列
  3. Go语言 Redis的使用
  4. 敲山震虎?继MongoDB之后,AWS又对Elasticsearch下手了
  5. IDC公司:服务器类微处理器市场最新预测
  6. 01.MyBatis快速入门
  7. android实践项目一实现简单的验证码和spinner下拉选项效果
  8. [WCF编程]13.并发:服务并发模式
  9. 基于协程的并发框架orchid简介
  10. 新浪微博登录密码加密函数 wsse加密算法说明