2016-06-02 22 views
-1

私はroomtype、ホテル、利用可能なrimage.Roomtypeのような4つのテーブルを持っています。room.Hotelには4つの行があります。今日は4行を持っています。 しかし、1つのルームタイプの行には多くの行があります。これらのクエリの実行が、私はrimage.Butから多くの行を取得するとmysqlの複数の同じ行

SELECT * 
    FROM roomtype 
    LEFT JOIN hotel 
    ON roomtype.hid = hotel.hid 
    LEFT JOIN available 
    ON roomtype.rid = available.rid 
    LEFT JOIN rimage 
    ON roomtype.rid = rimage.rid 
WHERE available.adt = '$today' 

は、私はこれらのソリューションのための私のクエリを記述することができ、それぞれ1 roomtypeのrow.How 1つだけの行を取得したいです。

+0

を持っている必要がありません。しかし、私は各1 roomtypeの行に対して1つだけの行を取得したい場合* ...これ1本

SELECT * FROM roomtype LEFT JOIN hotel ON roomtype.hid = hotel.hid LEFT JOIN available ON roomtype.rid = available.rid INNER JOIN (SELECT MIN(rid) FROM rimage WHERE roomtype.rid = rimage.rid) b ON roomtype.rid = b.rid where available.adt = '$today' 

ORこれを試してみてください? –

+0

hidでグループを使用する – user3040610

+0

roomtypeテーブルには4つの部屋が4つあります。私は質問にroomtypeとrimageに参加しました.1つの部屋に1つのrimage'rowがあります。 –

答えて

0

roomtypeは*リマージュ

SELECT * 
FROM roomtype 
LEFT JOIN hotel ON roomtype.hid = hotel.hid 
LEFT JOIN available ON roomtype.rid = available.rid 
LEFT JOIN (SELECT MIN(rid) FROM rimage WHERE roomtype.rid = rimage.rid) b ON roomtype.rid = b.rid 
where available.adt = '$today' 
関連する問題