我有3个mysql表。我希望在特定日期(例如第1天,第2天,第3天)以d_money的降序显示团队的排行榜。
user(u_id(p),name)
team(t_id(p),u_id(f),t_name,t_money,days_money) and
history(t_id(f),day,d_money).
首先我收集了t_id
中的所有$tid_arr
。然后,对于每个t_id
,我写了一个查询来获取t_name
及其天数。(特定日期。这里 - 第1天)。它显示结果。但我希望结果排序(d_money
的降序)。但我找不到灵魂。
$query = $con->prepare("SELECT t_id FROM team");
$query->execute();
$tid_arr = $query->fetchAll();
echo "<table border='1'>";
foreach($tid_arr as $tid)
{
$que = $con->prepare("SELECT d_money, t_name FROM team, history WHERE history.t_id=$tid['t_id'] AND team.t_id=history.t_id` AND history.day='1'");
$que->execute();
while($info = $que->fetch(PDO::FETCH_NUM))
{
echo "<tr>";
echo "<td>".$info[0]."</td>";
echo "<td>".$info[1]."</td>";
echo "</tr>";
}
}
echo "</table>";
答案 0 :(得分:2)
如果您想按d_money
然后t_id
订购,可以使用以下查询。第一个查询是不必要的,应该删除。
SELECT d_money, t_name FROM team a
LEFT JOIN history b ON a.t_id=b.t_id
WHERE history.day='1'
ORDER BY d_money DESC, t_id DESC
P.S。 <{1}}表未使用?
答案 1 :(得分:0)
将一个Join和Order By子句添加到您的SQL语句
echo "<table border='1'>";
$que = $con->prepare("SELECT T.t_id, H.d_money, T.t_name
FROM team T INNER JOIN history H ON T.t_id=H.t_id
WHERE H.day='1'
ORDER BY d_money DESC");
$que->execute();
while ($info = $que->fetch(PDO::FETCH_NUM)) {
echo "<tr>";
echo "<td>".$info[0]."</td>";
echo "<td>".$info[1]."</td>";
echo "</tr>";
}
echo "</table>";