タスク: もっとも高価な物品の品番、業者、および価格を調べます。
これはサブクエリーを使用して簡単に実行できます。
SELECT article, dealer, price
FROM shop
WHERE price=(SELECT MAX(price) FROM shop);
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 0004 | D | 19.95 |
+---------+--------+-------+
ほかにも、LEFT JOIN
を使用する方法や、すべての行を価格の降順でソートしてから MySQL 固有の LIMIT
句を使用して最初の行だけを取得する方法もあります。
SELECT s1.article, s1.dealer, s1.price
FROM shop s1
LEFT JOIN shop s2 ON s1.price < s2.price
WHERE s2.article IS NULL;
SELECT article, dealer, price
FROM shop
ORDER BY price DESC
LIMIT 1;
注記
最高価格のものが複数あり、価格が 19.95 の場合、LIMIT
を使用した方法では、その中の 1 つしか取得できません。