簡體   English   中英

如何解決這個MySQL查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM