Слияние двух SQL-запросов - PullRequest
0 голосов
/ 18 марта 2012

Привет всем, я пытаюсь объединить два запроса:

SELECT DISTINCT name,$price 
FROM room 
JOIN room_booking ON room.room_id=room_booking.room_id 
WHERE date_booked<>'$us_date' AND capacity>=$partySize 

и

SELECT DISTINCT room_id
FROM room_booking
WHERE room_id NOT IN 
    (SELECT DISTINCT room_id
     FROM room_booking
     WHERE date_booked = '$date'
    )

Как лучше всего объединить вышеперечисленное, чтобы последний запрос проверял дату, которой нет в таблице room_booking, и извлекал соответствующую информацию из таблицы номеров, если она превышает заданную емкость.

Ответы [ 3 ]

1 голос
/ 18 марта 2012

Попробуйте объединить следующим образом:

SELECT DISTINCT name,$price 
FROM room JOIN room_booking ON room.room_id=room_booking.room_id 
WHERE date_booked<>'$us_date' AND capacity>=$partySize AND room_booking.room_id IN (SELECT DISTINCT room_id
                                                                                    FROM room_booking
                                                                                    WHERE room_id NOT IN 
                                                                                        (SELECT DISTINCT room_id
                                                                                         FROM room_booking
                                                                                         WHERE date_booked = '$date'
                                                                                    ));
1 голос
/ 18 марта 2012

возможно

SELECT DISTINCT name,$price 
FROM room 
JOIN room_booking ON room.room_id=room_booking.room_id 
WHERE date_booked<>'$us_date' AND capacity>=$partySize 
AND date_booked <> '$date'

?

Или вы тоже хотите просмотреть все room_id?Просто добавьте room_id в список выбора.В этом случае вы можете отбросить отличное, так как я предполагаю, что room_id уникальны

1 голос
/ 18 марта 2012

это должно сделать работу, описанную в тексте (но я не уверен, что date_booked<>'$us_date' должен делать):

select name, price
from room
where capacity >= $partySize
and room_id not in 
  (select room_id
   from room_booking
   where date_booked = '$date'
  )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...