2012-03-18 5 views
0

Привет всем Я пытаюсь объединить два запроса:Объединение двух SQL запросов

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, и извлекает соответствующую информацию из таблицы комнат, если она превышает заданную емкость.

+0

** Что ** система баз данных и какая версия? ** SQL ** - это только язык структурированных запросов - язык, используемый многими системами баз данных - SQL - это ** НЕ ** продукт базы данных ... такие вещи, как это очень часто зависят от поставщика, - поэтому нам действительно нужно знать, что система базы данных, которую вы используете .... –

+0

Я использую ** phpMyAdmin **. – methuselah

ответ

1

это должно сделать работу, описанную в тексте (но я не уверен, что 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' 
) 
1

Try слиться с следующим образом:

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

возможно

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 уникальны.

Смежные вопросы