1

ここでテーブルを作成できなかったため、スクリーン印刷する必要がありました

問題は、テーブル SP から最大数量 (QTY) を持つサプライヤー (S) をどのように表示できるかです。

これは私が思いついたものです:

  SELECT sno FROM sp WHERE sno in (SELECT max(QTY) FROM sp WHERE qty);

しかし、空のフィールドしか表示されず、問題が見つかりません。よろしくお願いします。

4

2 に答える 2

2
SELECT a.* 
FROM tableA a
     INNER JOIN tableB b
        ON a.S = b.S
WHERE b.qty = (SELECT max(qty) FROM tableB)
于 2012-11-27T22:56:12.640 に答える
1

どうですか

SELECT sno FROM sp ORDER BY qty DESC LIMIT 1

そうすれば、QTY にインデックスを付けることができ、完全なテーブル スキャンを実行する必要がなくなります。

そして、結合を使用して、サブセレクトやそのようなコストのかかることを行うことなく、S のデータにアクセスできます。

SELECT s.* FROM sp LEFT JOIN s USING(sno) ORDER BY qty DESC LIMIT 1

于 2012-11-27T23:02:07.517 に答える