特定のフィールドに最小値があるテーブルからデータを選択したいので、これを試しました:
SELECT * FROM pieces where min(price)
私はMySQLが苦手です。助けてください。ありがとう
これにより、すべてのレコードで最低価格の結果が得られます。
SELECT *
FROM pieces
WHERE price = ( SELECT MIN(price) FROM pieces )
これは私がそれをする方法です(質問を理解していると仮定して)
SELECT * FROM pieces ORDER BY price ASC LIMIT 1
複数の行を選択しようとしている場合、各行で同じ価格(最低)が設定されている場合は、@ JohnWooの答えで十分です。
基本的にここでは、ASCendingの価格で結果を並べ替え(増加)し、結果の最初の行を取得しています。
HAVING MIN(...)を使用します
何かのようなもの:
SELECT MIN(price) AS price, pricegroup
FROM articles_prices
WHERE articleID=10
GROUP BY pricegroup
HAVING MIN(price) > 0;
実際、何を取得したいかに依存します:-最小値:
SELECT MIN(price) FROM pieces
最小値を持つテーブル(複数の行):John Wooが上記のとおりです。
ただし、同じ最小値を持つ異なる行を作成できる場合は、別の列からORDERするのが最適です。これは、後で(John Woo answereから)行う必要があるためです。
SELECT * FROM個WHERE価格=(SELECT MIN(price)FROM個)ORDER BY在庫ASC
これも機能します:
SELECT
pieces.*
FROM
pieces inner join (select min(price) as minprice from pieces) mn
on pieces.price = mn.minprice
(このバージョンにはサブクエリを持つwhere条件がないため、テーブルを更新する必要がある場合に使用できますが、SELECTだけが必要な場合はJohn Wooソリューションを使用することをお勧めします)
効率的な方法(レコードをいくつでも):
SELECT id, name, MIN(price) FROM (select * from table order by price) as t group by id