人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

MySQLのテーブル3つを結合した時の出力がうまくいきません。

構成は「main」「sub」「user」3つのテーブルの結合になります。以下内容です

main テーブル
main_id
main_n
user_id
up_time

subテーブル
main_id

userテーブル
user_name
user_id

こちらのmainテーブルとuserテーブルを結合し、subテーブルのmain_idをカウントさせ、mainテーブルのup_timeを昇順にソートしたいと思っています。

SELECT main.main_id, main.main_n, main.user_id, main.up_time, user.user_id, user.user_name, user.user_id, COUNT( sub.t_id ) AS count
FROM main
INNER JOIN user ON main.u_id = user.U_Id
INNER JOIN sub ON main.main_id = sub.main_id
GROUP BY main.main_id
ORDER BY main.up_time DESC

上記のSQLを実行したところ、データが1件しか返ってこず困っています。
1件しか返って来ないので時間通りにソートできているかもわかりません・・・どうか御教授お願い致します。

●質問者: 匿名質問者
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 匿名回答1号

入力データ例と結果データ例がないと他人にはわからない気がしますが・・・
sub.t_id やmain.u_id = user.U_Idといった謎項目も登場していますし。
main_idの数を数えるたいのにGROUP BY main.main_idとしているのもよくわかりません。
それと集計関数を使う場合、SELECT列リストにはGROUP BYで指定した項目か
集計関数の列だけになるのが一般的です。MySQLは通ってしまうかもしれませんが


匿名質問者さんのコメント
sub.t_id やmain.u_id = user.U_Idはこちらの変換ミスでしたm(__)mすみません。 正しくはsub.main_idとmain.user_id = user.user_idになります。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ