Php 如何解决这个mysql查询
我有3张mysql表Php 如何解决这个mysql查询,php,mysql,pdo,Php,Mysql,Pdo,我有3张mysql表 用户(身份证(p)、姓名) 团队(团队id(p)、团队id(f)、团队名称、团队资金、团队资金天数)和 历史记录(t\u id(f)、日期、d\u money) 现在我必须使用php显示排行榜 我试过这个 SELECT t_id FROM team; 得到了结果 那么, 内循环 foreach($tid_all as $tid) { $que = $db_con->prepare("SELECT d_money, t_name FROM team, h
用户(身份证(p)、姓名)
和团队(团队id(p)、团队id(f)、团队名称、团队资金、团队资金天数)
李>历史记录(t\u id(f)、日期、d\u money)
SELECT t_id FROM team;
得到了结果
那么,
内循环
foreach($tid_all as $tid)
{
$que = $db_con->prepare("SELECT d_money, t_name FROM team, history WHERE t_id= '".$tid['t_id']."' && 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>";
}
}
这条路对不对
谢谢大家的帮助
问题:是否可以按d_money订购结果表?我希望它按降序排列。MySQL查询中没有
&&
。在查询中用和
运算符替换该值。由于您希望从两个表中获取数据,因此请使用两个表,而不是使用循环:
SELECT
h.d_money,
t.t_name
FROM team AS t
INNER JOIN history AS h ON t.t_id = h.t_id;
运行这个查询一次,您将得到您想要的。您还可以像在查询中那样,在其末尾添加一个WHERE
子句。试试这个
SELECT d_money, t_name FROM team, history WHERE team.t_id= '".$tid['t_id']."' AND history.t_id= '".$tid['t_id']."' && day='1'
将
和&
替换为和
。尝试如下操作:
"SELECT d_money, t_name FROM team, history WHERE t_id= '".$tid['t_id']."' AND day='1' order by d_money DESC "
你能替换吗
WHERE t_id= '".$tid."' AND day='1'
而不是
WHERE t_id= '".$tid['t_id']."' && day='1'
请定义“不起作用”。你预期会发生什么,真正发生了什么?我尝试了这个,它起了作用。选择d_money,t_name FROM team,history WHERE history.t_id=$tid['t_id']&&team.t_id=$tid['t_id']..是否正确?现在您的代码正常了。当您从多个表加载数据时,请尝试使用join。通过编辑检查我的答案。您只需将
按货币顺序描述
添加到查询中。它不起作用。我想当我使用foreach循环时,它会在表中显示一行。还有其他方法吗?首先加载数组中的所有ID。然后在查询时使用where in
条件。
WHERE t_id= '".$tid['t_id']."' && day='1'