3

それぞれがユーザーIDにリンクされている約6つのテーブルがあります。テーブルの 1 つは userinfo です。ユーザー情報には、ストア プラットフォーム (magento など) を含むユーザーの詳細が含まれます。

  1. Userinfo には、アクティブ ユーザーと非アクティブ ユーザーの両方が含まれます (アクティブ ユーザーは、他の 5 つのテーブルで少なくとも 1 つのアクティビティを作成しました)。
  2. 他のテーブルのいずれかにレコードがある magento のプラットフォームを使用して、userinfo 内の個別のユーザー数をカウントしたいと考えています。
  3. 現在、ff コードを使用して他の 5 つのテーブルで個別のユーザー数をカウントできますが、これを userinfo テーブルと結合して、プラットフォーム magento でアクティブなユーザーを選択できるようにしたいと考えています。
  4. userinfo テーブルを追加しないと、プラットフォームごとにユーザーを選択する方法がありません。
  5. Magento のプラットフォームを使用して、userinfo テーブルのみでユーザーを選択するのは簡単ですが、それは、登録するだけでアプリでアクティビティを作成しないユーザーを選択できることを意味します。

         $query3 = ("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");
           $result3 = mysql_query($query3) or die(mysql_error()); 
           $row3 = mysql_fetch_row($result3);
           echo "Number of distinct users in all tables  = ".$row3[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
    
      **userinfo**
      Id  userid   username   password   platform
    
4

3 に答える 3

1

私の他の提案からUNIONサブセレクトを拡張すると、テーブルでこれを行うことができ、個別のカウントを取得できます。JOINUserInfo

SELECT   COUNT (DISTINCT ui.UserID))
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 id
         INNER JOIN UserInfo ui ON ui.UserID = id.UserID
WHERE    ui.Platform = 'Magento'
于 2012-07-18T10:38:16.460 に答える
0

私はそれを望みます:

SELECT COUNT(DISTINCT ui.userid) as number
FROM userinfo ui
INNER JOIN table1 t1 ON (t1.userid = ui.userid) 
INNER JOIN table2 t2 ON (t2.userid = ui.userid) 
INNER JOIN table3 t3 ON (t3.userid = ui.userid) 
INNER JOIN table4 t4 ON (t4.userid = ui.userid) 
INNER JOIN table5 t5 ON (t5.userid = ui.userid) 
WHERE ui.platform = 'magento'
于 2012-07-16T12:00:25.183 に答える
0

もしそうなら:

    SELECT COUNT(DISTINCT ui.userid) as number
    FROM userinfo ui, table1 t1, table2 t2, table3 t3, table4 t4, table5 t5
    WHERE ui.platform = 'magento'
    AND t1.userid = ui.userid
    AND t2.userid = ui.userid 
    AND t3.userid = ui.userid 
    AND t4.userid = ui.userid
    AND t5.userid = ui.userid

うまくいかない場合はSELECT COUNT(DISTINCT ui.userid) as number、see を SELECT ui.* に置き換えてみてください。

于 2012-07-18T10:28:09.927 に答える