【问题标题】:mysql Search an email and domain name with multiple tablesmysql 使用多个表搜索电子邮件和域名
【发布时间】:2015-07-10 01:56:45
【问题描述】:

我有 3 个 mysql 表:

unsubscribers => (id, email)

bounces => (id, email, bounce_reason)

blacklists => (id, domain)

假设我们必须搜索电子邮件 ID:something@someone.com 和域:someone.com(即电子邮件 ID)

我想编写这样一个查询,它将搜索存在于unsubscribersbounces 中的Email ID,或存在于blacklists 中的domain

因此,如果这些表中存在电子邮件 ID 或域中的任何一个,我应该得到结果为 1 或 0。如果这是不可能的,至少我应该得到数据

提前感谢您的帮助

【问题讨论】:

    标签: php mysql search join multiple-tables


    【解决方案1】:

    我找到了解决方案。下面的查询完成了所有操作

    SELECT (SELECT count(`email`) FROM `unsubscribers` WHERE `email` = 'rsakhale@gmail.com') AS `unsubscribers`,
    (SELECT count(`email`) FROM `bounces` WHERE `email` = 'rsakhale@gmail.com') AS `bounces`,
    (SELECT count(`name`) FROM `blacklists` WHERE `name` = 'gmail.com') AS `blacklists`
    

    然后它返回

    +---------------+---------+------------+
    | unsubscribers | bounces | blacklists |
    +---------------+---------+------------+
    |             1 |       0 |          0 |
    +---------------+---------+------------+
    

    啊,这是一个菜鸟问题:'(

    【讨论】:

    • 我相信这仍然会执行 3 个查询,因为所有表的执行都将完成。由于没有可用的参考资料,因此不确定 JOIN 是否会有所帮助
    • 谁能帮忙把这个子查询转换成连接??
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 2013-04-01
    • 1970-01-01
    • 2012-11-26
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    相关资源
    最近更新 更多