[英]how to solve this mysql query
我有3個mysql表
user(u_id(p),name)
, team(t_id(p),u_id(f),t_name,t_money,days_money)
和 history(t_id(f),day,d_money)
。 現在,我必須使用php顯示排行榜。
我試過了
SELECT t_id FROM team;
得到了結果。
然后,在for循環中
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>";
}
}
但是沒有用。 有什么辦法嗎?
解決方案1:我嘗試過此方法,並且有效。
`SELECT d_money, t_name FROM team, history WHERE history.t_id=$tid['t_id'] AND team.t_id=history.t_id`
這是正確的方法嗎?
謝謝大家的幫助。
問題:可以按d_money排序結果表嗎? 我要按降序排列。
MySQL查詢中沒有&&
。 在查詢中將其替換為AND
運算符。
由於您要從兩個表中獲取數據,因此請JOIN
兩個表,而不是通過循環來完成:
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'
用AND
替換&&
AND
嘗試像這樣:
"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'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.