【问题标题】:how do i extract only the records with all email entries missing如何仅提取所有电子邮件条目丢失的记录
【发布时间】:2021-12-22 07:06:35
【问题描述】:

我有一个问题,所以我有这张表:

| Manager_Name | Email_Address |
| ------------ | ------------- |
| person A     |Email@email.com|
| person A     |Null|
| person A     |Null|
| person A     |Email@email.com|
| person A     |Email@email.com|
| person B     |Null|
| person B     |Null|
| person B     |Null|
| person B     |Null|
| person B     |Null|
| person C     |Email@email.com|
| person C     |Email@email.com|
| person C     |Email@email.com|
| person C     |Email@email.com|
| person C     |Email@email.com|
| person D     |Null|
| person D     |Null|
| person D     |Null|
| person D     |Null|
| person D     |Null|

我的问题是我如何只提取所有 5 个电子邮件地址都丢失的经理,如 B 人和 D 人,在原始表中我有很多我想只获得所有 5 个地址都丢失的经理.

【问题讨论】:

    标签: mysql group-by max having sql-null


    【解决方案1】:

    您可以按Manager_Name 分组并在HAVING 子句中设置条件:

    SELECT Manager_Name
    FROM tablename
    GROUP BY Manager_Name
    HAVING MAX(Email_Address) IS NULL;
    

    请参阅demo

    【讨论】:

    • 这仍然给了我所有电子邮件记录为空的经理
    • @SoufianeBenounssi 那么你做错了什么,因为查询工作正常。请参阅我在我的 nswer 中添加的演示。
    • 我的坏 LOL,我肯定做错了哈哈现在它工作了,谢谢一堆
    【解决方案2】:

    你可以像这样使用NOT EXISTS

    SELECT * FROM table a WHERE NOT EXISTS(
        SELECT 1 FROM table b 
        WHERE a.Manager_Name = b.Manager_Name AND Email_Address IS NOT NULL
    )
    

    【讨论】:

    • 我只有一张桌子
    • 正确,它们都是同一个表,但别名不同。
    猜你喜欢
    • 1970-01-01
    • 2012-03-17
    • 2020-11-23
    • 2011-11-25
    • 2014-08-02
    • 1970-01-01
    • 2016-04-16
    • 1970-01-01
    • 2013-03-19
    相关资源
    最近更新 更多