Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算值在另一个sql表中出现的位置_Sql - Fatal编程技术网

计算值在另一个sql表中出现的位置

计算值在另一个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 我需

我有一张表格,我想知道有多少填表格的人有账户

该表单进入一个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
我需要一个SQL来告诉我表1中有多少人有一个帐户。在这个例子中,答案是2

我做到了这一点,但当我在几个不同的表上测试时,我得到了一些比我拥有的帐户数量更高的结果:

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;