10bet网址
MySQL 5.6リファレンスマニュアル
下载本手册
PDF(美国Ltr)- 26.8 mb
PDF (A4)- 26.8 mb


MySQL 5.6リファレンスマニュアル// 特定のカラムのグルプごとの最大値が格納されている行

3.6.4特定のカラムのグルプごとの最大値が格納されている行

タスク:物品ごとに最高値を付けている業者(複数可)を調べます。

この問題は,次のようなサブクエリを使用して解決できます。

WHERE price=(SELECT MAX(s2.price) FROM shop s2 WHERE s1. price)文章= s2.article);+---------+--------+-------+ | 文章| |经销商价格  | +---------+--------+-------+ | 0001 B | | 3.99 | | 0002 | | 10.99 | | 0003 | | 1.69加元| | 0004 | | 19.95  | +---------+--------+-------+

この例では相関サブクエリを使用していますが,これは十分でない場合があります(セクション13.2.10.7 "相関サブクエリ"を参照してください)。この問題を解決する別の方法は,句または左连接で非相関サブクエリを使用することです。

非相関サブクエリ

选择s1。商品,经销商,s1。加入(选择商品,最大(价格)作为从商店集团按商品的价格)作为s2在s1。文章= s2。article AND s1。价格= s2.price;

左连接:

选择s1。文章,s1.经销商,s1。price FROM shop s1 LEFT JOIN shop s2 ON s1。文章= s2。article AND s1。价格< s2。价格;文章是空的;

左连接の動作は,s1.priceが最大値を取るときに,それより大きい値のs2.priceは存在せず,s2行の値はになることに基づいています。セクション13.2.9.2 " join構文"を参照してください。