3

共通フィールド「userid」を持つ約 5 つのテーブルがあり、これらすべてのテーブルで個別のユーザー ID をカウントしたいと考えています。特定のユーザー ID は、これらのテーブルの約 2 つで発生する場合があります。しかし、5 つのテーブルの個別のユーザー ID の UNION をまとめてカウントしたいと考えています。ff コードを使用して、1 つのテーブルで個別のユーザー 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
4

1 に答える 1

7

使う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オペレーターは、デフォルトで個別の値のみを選択します。重複する値を許可するには、UNIONALLを使用します。

于 2012-07-13T14:38:52.830 に答える