2017-10-07 6 views
-6

私はMySQLの初心者で、私の問題のために質問を書く方法を知りません。私は "Station"という名前のテーブルを持っていて、 "City"という名前の列が1つあります。私は駅から都市名の最大と最小の長さを見つけようとしています。MySQLでネストされたクエリを書くには?

条件がある -

  1. あなたは昇順で最初の都市名をソートする必要があります。
  2. ソートされたテーブルの結果から最大長と最小長の文字列を検索します。
  3. 文字列の長さが同じ行が複数ある場合は、最初の文字列のみを選択します。
  4. CITY_NAMEのsize_of_city_name
+0

何を試してみましたか? –

+0

ヒント: 'ORDER BY LENGTH(city)' – Barmar

+0

私はしようとしましたが、質問をフレームする方法が得られません –

答えて

1
SELECT a.* 
FROM ( 
    select City, length(City) 
    from Station 
    where length(City) = (select max(length(City)) from Station) 
    order by city 
    limit 1 
    ) a 
UNION ALL 
SELECT b.* 
FROM ( 
    select City, length(City) 
    from Station 
    where length(City) = (select min(length(City)) from Station) 
    order by city 
    limit 1 
) b; 

としてあなたは私はあなたが1つのクエリでそれをしたい場合は、それはなると思う街

の分の長さを取得するためにminに最大を編集することができます表示結果より複雑な

sqlfiddle to test the query

+0

これは1つだけのクエリですが、私は、1つのクエリで、最小と最大の長さの両方の結果が欲しいです。私はUNIONを使用しましたが、動作しませんでした。 –

+0

ユニオンの両方のクエリへの回答を更新しました –

+0

ありがとうございました。しかし、それを記述することはできますか?私はあなたがなぜそれを使ったのか分からない。*とb *。あなたはそれを記述できますか? –