スポンサーサイト
2005.02.12
一定期間更新がないため広告を表示しています
| - | - | - |
Mixiに参加したよー
LINKS
ENTRIES
CATEGORIES
ARCHIVES
COMMENTS
TRACKBACK
MOBILE
PROFILE
OTHERS
|
SQLメモ
2004.08.27
会社のオンボロサーバにPostgreSQLが入ってて、先輩がテストサイトを作って、色々データベースに突っ込んだりしています。
どうも複数のテーブルを結合して、GROUP BY句を使って表示させたかったらしいのですが、なんとバージョン6.5.3のPostgresでは外部結合にOUTER JOIN句が使えないのです。 ネットとかで調べてたらUNION句を使いなさいとの事。 外部結合はそれで解決しましたが、新たな問題が・・・。 表示させたい項目が、email,ip_address,login_date。 で、GROUP BY句にemailを指定して、login_dateが最大になるように表示させたいとの事。 ここで問題。 select d.email,e.address,max(e.login_date) from data d,log e where d.email = e.login_user group by d.email だとエラーが出るのです。 これは、SELECT句で指定した集合関数以外の項目をGRUOP BY句で指定しなくてはいけなかったのです。 でもグループ化させたいのはemail項目だけで、GROUP BY句にaddressも指定すると、email,addressの二つの項目でグループ化されてしまうので困っています。 なんか簡単に解決しそうなんだけど、なかなかハッチャキません。 だれか助けて。 |