2016-06-02 3 views
-1

У меня есть 4 таких стола, как тип номера, отель, доступный и rimage.Roomtype есть 4 ряда для номера. В отеле есть одна строка. Имеются 4 строки для сегодняшней даты. Но разрисовывайте много строк для одного номера.запрос один ряд строк несколько одинаковых строк для 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' 

Когда эти запустить запрос, я получаю много строк из rimage.But Я хочу, чтобы получить только один ряд для row.How каждого из roomtype могу я пишу запрос для этого решения.

+0

* Но я хочу, чтобы получить только один ряд для строки каждый из roomtype в * ... какой? –

+0

использовать группу с помощью hid – user3040610

+0

roomtype стол имеет 4 ряда для четырех комнат. Я присоединился к номеру и оформлению в моем запросе. У меня есть один rimage'row для одной комнаты. –

ответ

0

Попробуйте

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' 

ИЛИ это, если roomtype не должны Rimage

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'