ホームページ >バックエンド開発 >PHPチュートリアル >複数テーブルのクエリを統計的にソートできる、書き方

複数テーブルのクエリを統計的にソートできる、書き方

WBOY
WBOYオリジナル
2016-06-23 13:07:08920ブラウズ

メンバーテーブル A フィールド: userid,username
コンテンツ:
1 Zhang San
2 Li Si


消費記録テーブル B フィールド: userid,username,money,type
Content:
1 Zhang San 100 1
1 Zhang San 100 1
2 Li Si 100 1
2 Li Si 100 2


要件: type=1 タイプに従って各メンバーの合計消費量を表示し、消費量で並べ替えます

結果は次のようになります:
Zhang San 200元
Li Si 100元


ディスカッションへの返信(解決策)

テーブルからt.username,sum(t.money)をsum1として選択
t.type= 1
ユーザー名でグループ化
sum1 記述で並べ替え

b left から sum(b.money) を選択 join a.userid=b.userid where b.type=1 sum(b.money) 記述で並べ替え

ユーザー名を選択sum(money) as total from Consumer Record table B where type=1 group by username order by total desc

$strsql="select * from B where type=1"; $result=mysql_db_query($mysql_database, $strsql, $conn); mysql_data_seek($result, 0); $re = array();while ($row=mysql_fetch_row($result)) { 	isset($row['userid']) && $re[$row['userid']] += $row['money'];	isset($row['userid']) || $re[$row['userid']] = $row['money'];} foreach($re as $key=>$value) {echo $value['username'].' '.$value['money'];}// 释放资源 mysql_free_result($result); // 关闭连接 mysql_close($conn); 


テーブル B にはテーブル A の内容が既に含まれています。 2 つのテーブルを関連付ける必要がありますか?

select username,sum(money) 消費記録テーブル B からの合計として type=1 ユーザー ID によるグループ 合計記述による順序


;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。