【MySQL】


環境-----
 CentOs 4.2
 MySQL 4.1.12

質問-----
CREATE TABLE table1 (id int(6));
INSERT INTO table1 (id) VALUES (1234),(2345);
CREATE TABLE table2 (id int(6) NOT NULL default '0', data tinyint(4) NOT NULL default '0');
INSERT INTO table2 (id, data) VALUES (1234, 1),(1234, 2),(2345, 3);

以上のテーブルで、
SELECT o.id, t.id, max( t.data ) AS m_data
FROM table1 o
LEFT JOIN table2 t ON o.id = t.id
GROUP BY o.id
ORDER BY t.m_data ASC;
を実行すると、
Unknown column 't.m_data' in 'order clause'
とエラーが出ます。

解決方法があればご教授ください。

※質問登録→キャンセルを2回もしたため、
 何度もメールが届いた方すみませんでした。

回答の条件
  • 1人5回まで
  • 登録:2006/07/24 21:53:54
  • 終了:2006/07/24 22:07:08

ベストアンサー

id:KirakiraHikaru No.1

KirakiraHikaru回答回数354ベストアンサー獲得回数682006/07/24 22:02:13

ポイント60pt

最近SQLをいじっていないので的外れな解答だったらすみません。

ORDER BY句の"t.m_data"の部分が

SELECT句で付けた別名の"m_data"が正しいのではないでしょうか?

id:keijiro

あれ?

うまくいきました。

結果に対して、phpMyAdminでソートをかけたのですが、

それが、変なorder句を作ってしまっていたようです。

便利なツールに頼り切って、見落としていました。お恥ずかしい。。。

ありがとうございました。

2006/07/24 22:06:51

その他の回答(1件)

id:KirakiraHikaru No.1

KirakiraHikaru回答回数354ベストアンサー獲得回数682006/07/24 22:02:13ここでベストアンサー

ポイント60pt

最近SQLをいじっていないので的外れな解答だったらすみません。

ORDER BY句の"t.m_data"の部分が

SELECT句で付けた別名の"m_data"が正しいのではないでしょうか?

id:keijiro

あれ?

うまくいきました。

結果に対して、phpMyAdminでソートをかけたのですが、

それが、変なorder句を作ってしまっていたようです。

便利なツールに頼り切って、見落としていました。お恥ずかしい。。。

ありがとうございました。

2006/07/24 22:06:51
id:ito-yu No.2

ito-yu回答回数323ベストアンサー獲得回数142006/07/24 22:05:32

ポイント10pt

SELECT o.id, max( t.data ) AS m_data

FROM table1 o LEFT JOIN table2 t ON o.id = t.id

GROUP BY o.id

ORDER BY m_data ASC;

でいいんじゃないでしょうか

o.idとt.idは一緒なんだし。

m_dataはtable2のカラムじゃないのでt.m_dataという書き方は間違っています

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません