[PHP] Inner join su 4 tabelle

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ciao a tutti, ho bisogno del vostro aiuto per risolvere un problema.

Ho 4 tabelle cosi costituite:
anagrafica -> id - nome
pagamenti-> id - id_prenotazione - data - importo
prenotazioni-> id - id_stanza - id_cliente - datain - dataout - costo
stanze-> id - nome

Ora io dovrei realizzare una tabella che tramite una query mi restituisca per ogni prenotazione i seguenti valori:
anagrafica.nome - stanze.nome - prenotazioni.datain - prenotazioni.dataout - prenotazioni.costo - pagamenti.importo

Vi ringrazio anticipatamente a tutti
 

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ciao e grazie per la risposta.
Sicuramente mi sono espresso male.
Con tabella intendevo quello che realizzo poi tramite HTML e dove metto tutti i risultati.
Io devo ottenere a video l'elenco ti tutte le prenotazioni con i relativi campi indicati nel precedente post.
Si deve essere vista come un'unica tabella che racchiude tutti i campi delle 4 tabelle.
poi a video dovrò visualizzare tutto e questo dovrà essere ordinabile o anagrafica.nome -o stanze.nome o prenotazioni.dataout o prenotazioni.costo.
Spero di aver spiegato bene il problema e chiedo scusa se ho fatto confusione
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
deve essere vista come un'unica tabella
capisco che vuoi ottenere il risultato con un'unica query,
vedi se è ciò che ti serve,
Codice:
select
  anagrafica.nome as nomecliente
 ,stanze.nome as nomestanza
 ,prenotazioni.datain
 ,prenotazioni.dataout
 ,prenotazioni.costo
 ,pagamenti.importo
from prenotazioni
left join anagrafica on prenotazioni.id_cliente = anagrafica.id
left join stanze on prenotazioni.id_stanza = stanze.id
left join pagamenti on prenotazioni.id = pagamenti.id_prenotazione
credo che dovrai inserire una o più clausole "where" per limitare la selezione delle prenotazioni estratte
usando "left join" vengono estratte tutte le prenotazioni, anche quelle che non hanno pagamenti in essere ( dovrebbe essere interessante elencarle)
 
  • Like
Reactions: solari77

solari77

Utente Attivo
6 Ott 2016
119
1
18
Si è perfettamente quello che cercavo.
Va benissimo cosi la query perchè devo visualizzare anche le prenotazioni che non hanno pagamenti.
Sei stato gentilissimo
 

solari77

Utente Attivo
6 Ott 2016
119
1
18
scusami ancora, ho appena notato una cosa.
Chiaramente non potevi saperlo perchè non l'ho specificato.
Il pagamento può avvenire in 2 tranche, in questo modo la view mi restituisce 2 righe (una per ogni pagamento).
E' possibile raggruppare i pagamenti (e quindi la relativa riga) relativi alla stessa prenotazione ?
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
Chiaramente non potevi saperlo perchè non l'ho specificato.
Il pagamento può avvenire in 2 tranche, in questo modo la view mi restituisce 2 righe (una per ogni pagamento).
In realtà volevo scriverlo come nota .. ma ho lasciato perdere
prova così,
Codice:
select
  anagrafica.nome as nomecliente
 ,stanze.nome as nomestanza
 ,prenotazioni.datain
 ,prenotazioni.dataout
 ,prenotazioni.costo
 ,sum(pagamenti.importo) as importo
from prenotazioni
left join anagrafica on prenotazioni.id_cliente = anagrafica.id
left join stanze on prenotazioni.id_stanza = stanze.id
left join pagamenti on prenotazioni.id = pagamenti.id_prenotazione
group by
  anagrafica.nome
 ,stanze.nome
 ,prenotazioni.datain
 ,prenotazioni.dataout
 ,prenotazioni.costo
 
  • Like
Reactions: solari77
Discussioni simili
Autore Titolo Forum Risposte Data
K [php] Problema con inner join PHP 4
M [PHP] Aiuto su inner join PHP 10
S Stampare il risultato di una query inner jon in php.... PHP 4
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 1
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10

Discussioni simili