..


スポンサーリンク

つのテーブルから結果を結合するUNIONを使用して

マックスボッシによって書かれた記事

SQL言語は私たちに、同一のSELECTステートメント内で、二つの異なるテーブルの結果を結合する非常に単純な方法を提供しています。

これを達成するために、それはどの2つのテーブルを照会することによって得られた結果の和集合、実際には、意志のUNION all'opertoreを使用する時間です。

の順序で適切に使用されることに注意してください、それは、UNION演算子その時です。

  • テーブルは列数が同じで照会されていること。
  • カラムが同じ名前を持っていることを要求。
  • 二つのテーブルの必須の列は、一貫性のあるデータ型を持っていること。
架空の旅行代理店のデータベースを操作すると私たちのDBが2つのテーブルだけが含まれていることを仮定する代わりのは言わせて:ここでの例です:
  • hotel_italia
    • の名前
  • hotel_europa
    • の名前
今の顧客は、私たちはイタリアで、ヨーロッパのホテルの提供のいずれかを知りたがっているとします。





名前、星、都市、国を選択してください。







 hotel_italiaから







 UNION







名前、星、都市、国を選択してください。







 hotel_europaから



このクエリでは、2つのテーブル内のすべてのホテルの完全なリストを得る:

の名前
ホテルカヴール 4 ローマの EN
ホテルミラマーレ 2 カトリック教徒 EN
ホテルマンゾーニ 2 ミラノの EN
ホテルエスパーニャ 3 マドリード ES
ヒルトン 5 ロンドン 英国
ホテルアムシュロスガルテン 4 シュトゥットガルト DE

UNIONは、重複レコードを(それがあったとして場合、デフォルトで動作するが表示されないことに注意してください:注意してください SELECT DISTINCT )、および必要に応じて重複レコードはまた(私たちの例に戻って考えて、このホテルで示すそのhotel_italia hotel_europa内のテーブルの両方)は、UNION ALLを使用する必要あります

UNIONから生じる結果をソートし、制限

UNIONおよび多くを使用しての結果は、それらが指定した数に限定される場合を考えます。 どのように? ここに解決策は次のとおりです。

 



します。SELECT * FROM







 (hotel_italiaから名前、星、都市、国を選択してください。







 UNION







 )の名前、星、都市、hotel_europaから国を選択







ホテルAS







 DESC ORDER BYの10星を制限するもので

 
基本的に我々は、それらが単一のテーブルの結果であるかのように2つ以上のテーブルの結合から生じる結果を扱うそうすることによって我々は標準的なソートと制限を使用することができます。

同じカテゴリの...
E -ラーニング
MS Accessの(上級) MS Accessの(上級)
迅速かつ簡単にデータベースを作成および管理する方法を学びます。 29€から開始。
MySQLの(コース) MySQLの(コース)
オープンソースのデータベースの管理。 39€から。
SQLとデータベース(コース) SQLとデータベース(コース)
リレーショナルデータベースを作成および管理。 39€から。
スポンサーリンク