1. Mam tabele user_post, gdzie przechowuję informację na temat daty i nr rezerwacji
2. Mam tabele rezerwacja z odpowiednimi wartościami
3. Mam tabele archiwum - gdzie lądują rezerwacje po odpowiednim czasie, dodaje jedno pole)
(2 i 3 - w obu tabelach są dokładnie te same dane, tzn id w rezerwacjach i archiwum jest to samo)
Wszystko działa ok.
Teraz chciałem zrobić widok, który łączy mi wiersz z tabeli user_post z odpowiednią rezerwacją. Jeżeli założę że pobieram z archiwum (albo rezerwacji) to działa dobrze. Jednak jak chce zrobić warunek, żeby pobierał mi z tam tąd, gdzie znajduje się wpis, to już nie działa. Próbowałem w taki sposób:
SELECT [wszystkie pola] FROM post_hotel LEFT JOIN (SELECT IF( licznik =0, 'archive', 'reservation' ) FROM (SELECT COUNT( * ) licznik FROM reservation INNER JOIN post_hotel ON reservation.id_reservation = post_hotel.id_reservation ) AS cos) k ON post_hotel.id_reservation = k.id_reservation LEFT JOIN room ON k.id_room = room.id_room LEFT JOIN hotel ON room.id_hotel = hotel.id_hotel LEFT JOIN user ON hotel.id_user = user.id_user;
Jak mam tak, to działa:
SELECT [wszystkie pola] FROM post_hotel LEFT JOIN archive k ON post_hotel.id_reservation = k.id_reservation LEFT JOIN room ON k.id_room = room.id_room LEFT JOIN hotel ON room.id_hotel = hotel.id_hotel LEFT JOIN user ON hotel.id_user = user.id_user;
Bardzo proszę o jakąś podpowiedź.