我有大约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
用一个 UNION
UNION
UNION与相比,标准UNION ALL将从结果集中删除重复的值。您的陈述看起来像
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。