環境-----
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回もしたため、
何度もメールが届いた方すみませんでした。
最近SQLをいじっていないので的外れな解答だったらすみません。
ORDER BY句の"t.m_data"の部分が
SELECT句で付けた別名の"m_data"が正しいのではないでしょうか?
最近SQLをいじっていないので的外れな解答だったらすみません。
ORDER BY句の"t.m_data"の部分が
SELECT句で付けた別名の"m_data"が正しいのではないでしょうか?
あれ?
うまくいきました。
結果に対して、phpMyAdminでソートをかけたのですが、
それが、変なorder句を作ってしまっていたようです。
便利なツールに頼り切って、見落としていました。お恥ずかしい。。。
ありがとうございました。
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という書き方は間違っています
あれ?
うまくいきました。
結果に対して、phpMyAdminでソートをかけたのですが、
それが、変なorder句を作ってしまっていたようです。
便利なツールに頼り切って、見落としていました。お恥ずかしい。。。
ありがとうございました。