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

【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回もしたため、
何度もメールが届いた方すみませんでした。

●質問者: PEPOTA
●カテゴリ:インターネット ウェブ制作
✍キーワード:AS ASC CentOS GROUP MAX
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● KirakiraHikaru
●60ポイント ベストアンサー

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

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

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

◎質問者からの返答

あれ?

うまくいきました。

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

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

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

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


2 ● ito-yu
●10ポイント

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という書き方は間違っています

関連質問


●質問をもっと探す●



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