3

我有大约六 (6) 个表,每个表都与用户 ID 相关联。其中一张表是用户信息。用户信息包含用户详细信息,包括他们的商店平台(例如 magento)

  1. Userinfo 包含活动用户和非活动用户(活动用户在其他 5 个表中至少创建了一个活动)。
  2. 我想用magento平台计算用户信息中不同数量的用户,这些用户在任何其他表中都有记录。
  3. 目前,我可以使用 ff 代码计算其他五个表中的不同用户数量,但希望将其与 userinfo 表结合起来,以便我可以选择具有平台 magento 的活动用户。
  4. 不添加 userinfo 表意味着我无法按平台选择用户。
  5. 仅在 userinfo 表中选择用户,使用 magento 平台会很容易,但这意味着我可以选择只注册但不继续在我的应用程序上创建活动的用户。

         $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用 SELECT ui.* 替换以查看。

于 2012-07-18T10:28:09.927 回答