-1

我有一个名为 ptb_profile_views 的表,如下所示:

id | profile_id | viewed_profile_id
1        2              6
2        2              6
3        3              6
4       -1              6
5       -1              6

我一直试图将“profile_id”中的正值仅计算一次作为不同的值,并将 -1 值计算为它们在以下查询中出现的次数:

function check_profile_views3() {
global $connection;
global $_SESSION;
$query = "
SELECT id,profile_id,viewed_profile_id COUNT
FROM ptb_profile_views 
WHERE profile_id > 0
GROUP BY profile_id
UNION
/*shows all -1 profile id's*/
SELECT id,profile_id,viewed_profile_id 
FROM ptb_profile_views 
WHERE profile_id <= 0";
$check_profile_views_set3 = mysql_query($query, $connection);
confirm_query($check_profile_views_set3);
return $check_profile_views_set3;       
        }

所以最终结果是

2, 3, -1, -1

但不是回显它们自己的实际值,而是希望查询对值进行计数。

所以...

2, 3, -1, -1 = a total of 4

我也试图像这样调用查询,我不知道它是否会起作用:

$check_profile_views_set3 = check_profile_views3();
while ($views3 = mysql_fetch_array($check_profile_views_set3)) { 

echo "".$views3['profile_id'].""; ?>

有人可以告诉我我该怎么做吗?谢谢

4

1 回答 1

0
SELECT a + b AS TotalCount
FROM
        (
          SELECT COUNT(DISTINCT profile_ID) a
          FROM   ptb_profile_views
          WHERE  profile_ID > 0
        ) x,
        (
          SELECT COUNT(profile_ID) b
          FROM   ptb_profile_views
          WHERE  profile_ID < 0
        ) y
于 2013-04-09T06:25:03.393 回答