EDIT : funziona benissimo, chiudete o cancellate pure ^_^
Sono giunto alla fine : prima di tutto ringrazzio coloro che mi hanno aiutato, con la promessa di riguardarmi tutto con " piu calma " visto che ormai il tempo stringe.
Come ultima cosa espongo questa domanda, un po' piu teorica che pratica.
Dunque. Il mio database ha 3 tabelle , alloggi, prenotazioni ed utenti.
codice:
TABLE utenti {
user_id PK
dati vari non importanti // li ometto
grado // grado stabilisce al momento della registrazione se e' un utente proprietario di una struttura o se e' un utente che vuole prenotarla
}
TABLE alloggi {
id_hotel PK
dati non importanti // li ometto
proprietario FK references utenti(user_id)
}
TABLE prenotazioni {
id_prenotazione PK
prenotante_id FK references utenti (user_id)
struttura_id FK references alloggi (id_hotel )
dati non importanti // li ometto
stato // di default messa a no. Cambiera in si solo quando un proprietario gestira' personalmente la prenotazione
}
Adesso la domanda e' questa : vorrei costruire una query che mi dica, al relativo proprietario, quali suoi hotel sono prenotati e da quali utenti.
Pensavo ad una query con 4 join, solamente che " su carta " l'ho sempre fatta in una certa maniera, ma con php e mysql credo di dover usare l'INNER JOIN.
Che ne dite di una query fatta cosi :
codice:
Select * FROM utenti JOIN alloggi ON utenti.user_id = alloggi.proprietario
INNER JOIN prenotazioni ON alloggi.id_hotel =prenotazioni.struttura_id
INNER JOIN utenti AS richiedenti ON richiedenti.user_id = prenotazioni.prenotante_id
WHERE le condizioni che voglio
Teoricamente mi sembra corretta, solo che non ho ben capito cosa mi comportino gli inner join. In questo modo mi sembra corretta : un proprietario puo' visualizzare quali suoi hotel sono sotto prenotazione e devono ancora essere gestiti, e puo' visualizzare i dati dell'utente da cui e' partita la prenotazione.