1

名前、グレード、およびポイントを含むデータのテーブルがあります。たとえば、「ジョン」は、ポイント値が3.0のグレードBを取得しました。

グレードが「B」未満のエントリを選択するにはどうすればよいですか?

だから私はどういうわけかこのようなことをする必要があります

Value = select Point from MyTable where Grade="B"

その後

select * from MyTable where Point < value

しかし、明らかにSQLは1つのステートメントでなければなりません...

4

2 に答える 2

2

選択をネストしてサブクエリを追加できます。

SELECT realtable.* 
FROM (SELECT Point FROM MyTable WHERE Grade="B" LIMIT 1) subquery, MyTable realtable
WHERE subquery.Point > realtable.Point
于 2012-10-24T21:23:21.190 に答える
1

以下のようにサブクエリで使用してみてください。

select * 
from MyTable 
where Point < (select Point 
               from MyTable 
               where Grade="B")

ただし、サブクエリが複数の行を返す場合は、たとえば集計関数を使用してみてくださいmin

select * 
from MyTable 
where Point < (select min(Point)
               from MyTable 
               where Grade="B")

またはと:LIMIT_join

select * 
from MyTable mt
join (select Point from MyTable 
      where Grade="B"
      order by Point
      LIMIT 1) mt2 on mt.Point < mt2.Point
于 2012-10-24T21:15:52.843 に答える