INNER JOIN 并减去值 ORDER BY ASC

问题描述 投票:0回答:1

您的文本它为所有用户返回 0。我主持了一个 MMORPG 粉丝网站,我试图编写一个查询,获取每周从游戏 API 中收集的名声 - 或 + 并返回差值,以便他们知道他们每周获得或失去的名声数量。我买了这个 fam 网站,而且我的 php 水平是初学者,所以我从未尝试过加入两张桌子。

表格在表格内设置了 API 第 1 周和第 2 周,我有一行称为“名望”

<?php
/////////////////////////////////////////////////////////////
/////////This doesnt work i suck/////////////////////////////
/////////////////////////////////////////////////////////////


include('includes/dbh.inc.php');
include('includes/functions.inc.php');



//Tried player join cant get where to work
$sql = "SELECT * FROM api_scores_week1  INNER JOIN api_scores_week2 ON api_scores_week1.player =       api_scores_week2.player";
//first query

//$sql = "SELECT * FROM api_scores_week1 WHERE active > 0 ORDER BY fame ASC";//
$result = mysqli_query($connectDB, $sql);
            // Loop through result set and echo each event
while ($row = mysqli_fetch_array($result)) {
   $player = $row['player'];
   $fame = $row['fame'];

echo $player . "-" . max(intval(api_scores_week1.$fame - api_scores_week2.$fame),$max) . "  <br/>";
}



mysqli_close($connectDB);
?>
php sql inner-join
1个回答
0
投票

您需要使用别名概念从两个表中获取名气值,然后进一步使用这些值来获得最终的名气。

更改您的代码,如下所示:

<?php
include('includes/dbh.inc.php');
include('includes/functions.inc.php');

$sql = "SELECT
    api_scores_week1.player AS player,
    api_scores_week1.fame AS week1Fame,
    api_scores_week2.fame AS week2Fame
FROM
    api_scores_week1
INNER JOIN api_scores_week2 ON api_scores_week1.player = api_scores_week2.player";

$result = mysqli_query($connectDB, $sql);

while ($row = mysqli_fetch_array($result)) {
    $player = $row['player'];
    $week1Fame = $row['week1Fame'];
    $week2Fame = $row['week2Fame'];
    echo $player . "-" . max(intval($week1Fame - $week2Fame),$max) . "  <br/>";
}
mysqli_close($connectDB);
© www.soinside.com 2019 - 2024. All rights reserved.