我有emails_accounts
一个结构如下的表:
╔════╦═════════════════════╦══════════════╗
║ id ║ email ║ description ║
╠════╬═════════════════════╬══════════════╣
║ 1 ║ test@gmail.com ║ Lorem ║
║ 2 ║ example@example.com ║ Ipsum ║
║ 3 ║ test@example.com ║ Dolor ║
║ 4 ║ retail@example.com ║ Sit Amet ║
╚════╩═════════════════════╩══════════════╝
每封电子邮件都是独一无二的。
第二个表email_templates
的结构与此类似:
╔════╦══════════════════╦════════════╦══════════╗
║ id ║ email_title ║ email_from ║ email_to ║
╠════╬══════════════════╬════════════╬══════════╣
║ 1 ║ Test title ║ 1 ║ 3 ║
║ 2 ║ Second title ║ 2 ║ 3 ║
║ 3 ║ Some title ║ 1 ║ 1 ║
╚════╩══════════════════╩════════════╩══════════╝
email_to
并且email_from
可以不同,但它们可以相同(如示例中所示)。
我想要实现的是创建一个 SQL 查询,它为我提供表中的所有帐户,emails_accounts
但还有其他信息 - 每个帐户在表中使用了多少email_templates
(它需要检查email_from
和email_to
)。
我知道这不应该太难,但到目前为止我还没有设法得到正确的结果。我目前的代码是:
SELECT acc.* , COUNT( temp.id )
FROM emails_accounts acc
LEFT JOIN email_templates temp ON acc.id = temp.email_from
GROUP BY acc.email
但我想两者email_from
兼而有之email_to
。
我也试过这个:
SELECT acc . * , COUNT( temp.id ) + COUNT( temp2.id ) AS count
FROM emails_accounts acc
LEFT JOIN email_templates temp ON acc.id = temp.email_from
LEFT JOIN email_templates temp2 ON acc.id = temp2.email_to
GROUP BY acc.email
但它给出了太多的结果。