我有一个名为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'].""; ?>
有人可以告诉我我该怎么做吗?感谢
答案 0 :(得分: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