mysql:2426
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Tue, 29 Aug 2000 21:16:11 +0900
Subject: [mysql 02426] Re: GROUP BY で全部のレコードを表示させる方法
とみたです。 At Tue, 29 Aug 2000 20:56:03 +0900, moeru@xxxxxxxxxx (moeru) wrote: > SELECT userid,MAX(price),quantity FROM item WHERE itemid = '$itemid' > GROUP BY userid ORDER BY price DESC; > > これを表示させると、GROUP BYの為かquantityの値が別のレコードの値になります。 ん〜、 http://www.mysql.gr.jp/jpdoc/3.23/manual.ja_Reference.html#Group_by_functions によると、 | MySQL は GROUP BY を拡張しています。SELECT 表現内で GROUP BY 部に現れ | ないフィールドまたは計算を使用できます。これは このグルー プのための全 | ての可能な値 を表しています。この使用により、必要ないフィールドで のソー | トとグループが避けられるので、高い性能が得られます。 〜〜 | GROUP BY 部から省略したフィールドがグループ内で一意でない場合は、こ の | 機能を使用しないでください! ってことなんで…。Sub Select が使えればいいのかもしれませんが、現状では それもムリなんで、他の言語を介在させるとか、一時テーブルを使ってやるとか しないとダメっぽいっすね。 > MySQLでは、自己結合ってできるでしょうか? > FROM item item1,item item2 > 一応、試してみたのですがうまくいきませんでした。。 ん? できますよ。 mysql> select * from test; +------+------+ | id | str | +------+------+ | 1 | hoge | | 2 | fuga | +------+------+ 2 rows in set (0.01 sec) mysql> select * from test t1, test t2; +------+------+------+------+ | id | str | id | str | +------+------+------+------+ | 1 | hoge | 1 | hoge | | 2 | fuga | 1 | hoge | | 1 | hoge | 2 | fuga | | 2 | fuga | 2 | fuga | +------+------+------+------+ 4 rows in set (0.00 sec) -- とみたまさひろ <tommy@xxxxxxxxxx> http://www.tmtm.org 日本MySQLユーザ会 http://www.mysql.gr.jp
2425 2000-08-29 20:56 [<moeru@xxxxxxxxxx> ] GROUP BY で全部のレコードを表示させる方法 -> 2426 2000-08-29 21:16 ┗[とみたまさひろ <tomm] 2427 2000-08-29 22:21 ┗[<moeru@xxxxxxxxxx> ] 2428 2000-08-29 23:40 ┗[とみたまさひろ <tomm] 2429 2000-08-30 00:17 ┣[<moeru@xxxxxxxxxx> ] 2430 2000-08-30 21:53 ┗[<moeru@xxxxxxxxxx> ] 2431 2000-08-31 07:23 ┗[とみたまさひろ <tomm] 2432 2000-08-31 18:19 ┣[Natsu Tanaka <natsug] はじめまして 2434 2000-08-31 23:33 ┃┣[<moeru@xxxxxxxxxx> ] 2435 2000-09-01 00:06 ┃┗[とみたまさひろ <tomm] 2443 2000-09-04 11:33 ┃ ┗[Natsu Tanaka <natsug] みなさんへ 2436 2000-09-01 00:13 ┗[<moeru@xxxxxxxxxx> ]