计算值在另一个sql表中出现的位置
我有一张表格,我想知道有多少填表格的人有账户 该表单进入一个SQL表,其中有一列用于电子邮件地址,我想将其与另一个包含所有帐户的表中的列进行比较 表1:(表格条目) 电子邮件地址计算值在另一个sql表中出现的位置,sql,Sql,我有一张表格,我想知道有多少填表格的人有账户 该表单进入一个SQL表,其中有一列用于电子邮件地址,我想将其与另一个包含所有帐户的表中的列进行比较 表1:(表格条目) 电子邮件地址 john@hotmail.com mary@hotmail.com ann@hotmail.com john@hotmail.com peter@hotmail.com 表2:(客户账户表) 电子邮件地址 john@hotmail.com ann@hotmail.com james@hotmail.com 我需
- john@hotmail.com
- mary@hotmail.com
- ann@hotmail.com
- john@hotmail.com
- peter@hotmail.com
- john@hotmail.com
- ann@hotmail.com
- james@hotmail.com
SELECT DISTINCT
COUNT(email_address)
FROM
table2
WHERE
EXISTS
(SELECT 1
FROM table1
WHERE table1.email_address = table2.email_address );
distinct
应该在count()内
普通联接如何:
SELECT COUNT(DISTINCT t1.email_address)
FROM table1 t1
INNER JOIN table2 t2
ON t1.email_address = t2.email_address;
这假设第二个表中的电子邮件地址是唯一的,因为一个帐户可能只注册一次。如果是这样,那么内部连接将过滤掉所有没有帐户的电子邮件地址条目
如果要继续使用EXISTS
方法,请参阅@Yogesh答案。请在标记库中指定要更新的数据库引擎,它实际上是在一个低代码平台中,允许查询SQL数据库,我对SQL非常陌生。我的意思是,数据库引擎在SQL语法方面可能存在差异。如果您指定您正尝试使用的数据库管理系统,这将是一件好事。我打算使用哪个数据库管理系统,但SQLFIDLE目前似乎正遭受bug的困扰。不同的计数不是零,实际上是两个。非常感谢!
SELECT COUNT(DISTINCT t1.email_address)
FROM table1 t1
INNER JOIN table2 t2
ON t1.email_address = t2.email_address;