これが私がやろうとしていることです。重複する行が含まれている可能性のあるユーザー評価のテーブルがあります。DISTINCT
各ユーザーの値のみを取得したいと考えています。
以下の表の例では。user_id 1と50のみが特定の場所に属している場合は、各ユーザーの一意のvideo_idのみをとして返す必要がありますCOUNT
。ユーザー1はビデオ1、2、および1を渡しました。したがって、ユーザー50はビデオ2を渡しました。したがって、この場所の合計は3になります。DISTINCT's
クエリに2つ必要だと思いますが、そうではありません。これを行う方法を確認してください。
+-----+----------+----------+
| id | video_id | user_id |
+-----+----------+----------+
| 1 | 1 | 1 |
| 2 | 2 | 50 |
| 3 | 1 | 115 |
| 4 | 2 | 25 |
| 5 | 2 | 1 |
| 6 | 6 | 98 |
| 7 | 1 | 1 |
+-----+----------+----------+
これは私の現在のクエリがどのように見えるかです。
$stmt2 = $dbConn->prepare("SELECT COUNT(DISTINCT user_assessment.id)
FROM user_assessment
LEFT JOIN user ON user_assessment.user_id = user.id
WHERE user.location = '$location'");
$stmt2->execute();
$stmt2->bind_result($video_count);
$stmt2->fetch();
$stmt2->close();
したがって、私のクエリはその特定の場所のすべてのカウントを返しますが、特定の各ユーザーからの一意でない結果を省略しません。
これが理にかなっていることを願っています、助けてくれてありがとう。