0

私はこれらの2つのクエリを持っています:

$sql = "SELECT SUM(points) as userpoints FROM ".$prefix."_publicpoints
                        WHERE date BETWEEN ? AND ? AND fk_player_id = ?";

// Getting the users points into a variable to use in the next query
$userPoints;

$getuserplacement = "SELECT fk_player_id FROM ".$prefix."_publicpoints
                            WHERE date BETWEEN ? AND ?
                                GROUP BY fk_player_id
                            HAVING SUM(points) > $userPoints";

// After this I count the rows I get and put that into a variable and thats the users Rank
$userRank = $stmt->num_rows + 1;

ポイント:-178 配置: 1891

次に、Ivan の例を試しました。

    $sql= "SELECT fk_player_id FROM ".$prefix."_publicpoints
                        WHERE date BETWEEN ? AND ?
                            GROUP BY fk_player_id
                        HAVING SUM(points) > (
             SELECT SUM(points) as userpoints FROM ".$prefix."_publicpoints
                        WHERE date BETWEEN ? AND ? AND fk_player_id = ?
   )";

if($stmt->prepare($sql)){
    $stmt->bind_param('ssssi',$yearFrom,$yearTo,$yearFrom,$yearTo,$playerid);
    $stmt->execute();
    $stmt->store_result();
    $userMrank = $stmt->num_rows;
    if (!$stmt->execute()) {
        echo "Execute failed: (" . $stmt->errno . ") " . $stmt->error;
    }
    $stmt->bind_result($userPoints);
    $stmt->fetch();
}

ポイント:3 配置: 0

これらの 2 つのクエリを 1 つに結合することは可能ですか?

助けを願っています:-)

4

1 に答える 1

0

私があなたのことを理解しているかどうかはわかりませんが、これが欲しいですか?

$sql= "SELECT fk_player_id FROM ".$prefix."_publicpoints
                            WHERE date BETWEEN '$year-01-01' AND '$year-12-31'
                                GROUP BY fk_player_id
                            HAVING SUM(points) > (
                 SELECT SUM(points) as userpoints FROM ".$prefix."_publicpoints
                            WHERE date BETWEEN ? AND ? AND fk_player_id = ?
       )";
于 2013-02-09T23:44:32.497 に答える