2017-11-23 5 views
0

ユニ・プロジェクト用に設定されたホテル予約サイトに基づくリレーショナルデータベースモデルがありますが、1つのクエリで困惑しています。リレーショナルデータベース内のホテル1部屋あたり最低価格を取得するクエリ

これは私の知る限り得ているようです。

SELECT DISTINCT 
    property.property_id, 
    property_name, 
    property_description, 
    star_rating, 
    room_base_price 
FROM 
    property 
INNER JOIN rooms ON property.property_id = rooms.property_id; 

問題は、私は私のデータベースに記載されたプロパティごとにいくつかの部屋を持っているということです。このクエリでは、ホテルごとに最低価格の部屋を選択したいと考えています。私が現在やっているやり方では、すべてのシングルルームとその個別のプライスですべてのシングルプロパティを表示しています。

プロパティ(ホテル)内の部屋の最低価格を返すことができるクエリを書く方法については誰でも助言できますが、複数のホテルを返すのではなく、ホテルごとに1つの行しか表示されません各プロパティの行?

+0

両方のテーブルのスキーマを追加してください。 –

+1

同じプロパティの2つの部屋の両方が同じ最低価格を持つケースをどのように処理しますか? – PatrickSJ

+0

https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very-simple-sql-クエリ – Strawberry

答えて

0

は、クエリを、次の試してみてください。

SELECT DISTINCT 
    property.property_id, 
    property_name, 
    property_description, 
    star_rating, 
    room_base_price 
FROM 
    property 
INNER JOIN rooms ON property.property_id = rooms.property_id; 
where (rooms.property_id,rooms.room_base_price) in 
                (select property_id,min(room_base_price) 
                from rooms 
                group by property_id 
               ) 
; 

はそれが役に立てば幸い!

+0

クエリを試しましたか? –

関連する問題