0

minとmaxを一緒に使用してステートメントを作成する必要があります。

SELECT companyname  FROM companies JOIN stocklist 
USING (companyid) where price =some(
( select max(price) from stocklist) , ( select min(price) from stocklist) ) ;

最も低い値と最大値の会社名を取得する必要がありますが、これは機能していません(最後の行のため)何が間違っているので、どうすればよいですか?

アップデート:

select companyname from stockList join companies using (companyid) WHERE price IN (select min(price) from stocklist) ;

これは私にとっては機能していますが、オペランドが1つしかないのですが、どうすれば2つ取得できますか?

4

2 に答える 2

1

IN 句に 2 つのサブクエリを含めるという考えは好きではありません。結合を明示的に行う別の方法を次に示します。

SELECT companyname 
FROM companies c JOIN
     stocklist s
     c.companyid = s.companyid join
     (select min(price) as minprice, max(price) as maxprice
      from stocklist
     ) sm
     on s.price = minprice or s.price = maxprice
于 2012-08-19T20:21:40.197 に答える
0

これを試して:

SELECT companyname  FROM companies c
INNER JOIN stocklist s
ON c.companyid = s.companyid
WHERE price IN
((SELECT MAX(price) FROM stocklist ), 
 (SELECT MIN(price) FROM stocklist ))

このフィドルを見る

于 2012-08-19T14:24:22.277 に答える