一尘不染

计算来自多个表的不同用户ID

sql

我有大约5个表,其中的公用字段为“
serid”。我想在所有这些表中计算不同的用户ID。某些用户ID可能出现在这些表中的大约2个中。但是我想将5个表中不同用户ID的UNION数在一起。我可以用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

阅读 180

收藏
2021-03-08

共1个答案

一尘不染

用一个 UNION

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

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

从w3schools

默认情况下,UNION运算符仅选择不同的值。若要允许重复的值,请使用UNION ALL。

2021-03-08