Witam,
mam taki kod. Dzięki niemu otrzymuje wszystkie zarezerwowane sale na dany dzień. Nie mogę jednak zrozumieć jak mam zrobić, żeby pobrać wszystkie sale różne od zarezerwowanych. Tzn pobieram wszystkie sale z tabeli room, których nie ma w tabeli reservation. Macie może jakiś pomysł? Bo mogę robić wszystko w pętlach i dostane zamierzony wynik, ale sądzę, że można od razu w zapytaniu pobrać.
$reservated_for = $this->db->query(
'SELECT
pr_room.id id_room,
pr_room.id_edifice,
pr_room.id_type_room,
pr_room.number number_room,
pr_room.number_of_seats number_of_seats,
pr_reservation.id,
pr_reservation.id_room id_room_reservation,
pr_reservation.id_hours id_hours,
pr_reservation.id_users,
pr_reservation.day,
pr_hours.id,
pr_hours.hour hours_hour
FROM room pr_room
LEFT JOIN reservation pr_reservation ON pr_room.id = pr_reservation.id_room
LEFT JOIN hours pr_hours ON pr_reservation.id_hours = pr_hours.id
WHERE pr_room.id_edifice = ?
AND pr_room.id_type_room = ?
AND pr_reservation.day = ?
AND pr_hours.id = ?',
[$id_edifice, $id_typeroom, $day, $id_hours]
);
Przerobiłem zapytanie, wydaje mi się, że powinienem iść w tą stronę, jednak dostaje błędem
$reservated_for = $this->db->query(
'SELECT
pr_room.id id_room,
pr_room.id_edifice,
pr_room.id_type_room,
pr_room.number number_room,
pr_room.number_of_seats number_of_seats,
pr_reservation.id,
pr_reservation.id_room id_room_reservation,
FROM room pr_room
WHERE pr_room.id NOT IN (
SELECT pr_reservation.id FROM reservation pr_reservation WHERE pr_reservation.id = pr_room.id
)
AND pr_room.id_edifice = ?
AND pr_room.id_type_room = ?',
[$id_edifice, $id_typeroom]
);