SQL Count具有不同且匹配的两个不同表

时间:2013-10-24 19:47:31

标签: mysql count distinct

我有table1和table2,我正在尝试计算每个中特定列的唯一匹配总数。

select count (distinct phone1) from table1,table2 where table1.phone1=table2.phone2;

我认为我非常接近,但我一直收到语法错误。我使用distinct来获得唯一的匹配,因为有几个重复的匹配。

谢谢!

2 个答案:

答案 0 :(得分:2)

您的查询看起来是正确的,您只需要删除count和左括号之间的空格,即count(x)而不是count (x)

答案 1 :(得分:0)

试试这个:

SELECT COUNT(phone)
FROM (
    SELECT phone1 AS phone
    FROM table1
    UNION
    SELECT phone2
    FROM table2
) a

UNION将消除重复的结果,然后您只需计算结果记录。

来自docs

  

UNION用于组合多个SELECT语句的结果   到一个结果集。

     

UNION的默认行为是从中删除重复的行   结果。

修改

我误解了这个问题。我以为你想要计算所有不同的数字。

为此,你的查询非常好,从COUNT和(

之间的空格开始计算