Php 从多个表中统计不同的用户id

Php 从多个表中统计不同的用户id,php,mysql,sql,database,Php,Mysql,Sql,Database,我有大约5个带有公共字段“userid”的表,我想在所有这些表中计算不同的userid。某些用户ID可能出现在其中的两个表中。但是我想把5个表中不同用户ID的联合计算在一起。我能够使用ff代码在一个表中统计不同的用户ID。我想能从所有的桌子上数数 //just count the nuber of distict userids in table1 $query2 = ("SELECT COUNT(DISTINCT userid) FROM table1"); $result2

我有大约5个带有公共字段“userid”的表,我想在所有这些表中计算不同的userid。某些用户ID可能出现在其中的两个表中。但是我想把5个表中不同用户ID的联合计算在一起。我能够使用ff代码在一个表中统计不同的用户ID。我想能从所有的桌子上数数

//just count the nuber of distict userids in table1
    $query2 = ("SELECT COUNT(DISTINCT userid) FROM table1"); 
    $result2 = mysql_query($query2) or die(mysql_error()); 
    $row2 = mysql_fetch_row($result2); 
    echo "Number of users in table 1  = ".$row2[0] ."<br />";


**Table 1**
Id    userid    name   adresss

**Table 2**
Id  Title   Sex   userid

**Table 3**
Id   userid   amount

**Table 4**
Id  price  promotion  userid   productid

**Table  5**
Id  userid   category   tax   weight
使用工会

与UNION ALL不同,标准UNION将从结果集中删除重复的值。你的陈述看起来像

SELECT   COUNT(*)
FROM     (
           SELECT UserID FROM Table1
           UNION SELECT UserID FROM Table2
           UNION SELECT UserID FROM Table3
           UNION SELECT UserID FROM Table4
           UNION SELECT UserID FROM Table5
         ) AS UserIDs
默认情况下,UNION运算符仅选择不同的值。容许 重复值,使用UNION ALL


这看起来像是一个标准的表格设置。。。你为什么要数这些桌子?有人会假设你有一个表在某处生成唯一的用户ID,你可以从表1中得到计数。请帮我看一下这个棘手的问题@astymore-我刚刚做了,如果这不是你想要的,请告诉我们。谢谢,它工作得很好。只有语法错误空间btn COUNT和方括号,但效果良好。