Ciao a tutti,
sto cercando di creare una query in MYSQL che mi ritorni il dettaglio degli ordini che vengono fatti ad una cassa. Ora vi spiego la struttura del database:
Tabella ordine
id
nome
tavolo
coperti
totale
resto
versato
Tabella bar
id
nome
prezzo
quantita (quantità rimasta)
Tabella cucina
id
nome
prezzo
quantita (quantità rimasta)
Tabella dettaglio_ordine_bar
id
id_ordine(chiave esterna per tabella ordine)
id_bar(chiave esterna per tabella bar)
quantita (quantità ordinata)
Tabella dettaglio_ordine_cucina
id
id_ordine(chiave esterna per tabella ordine)
id_cucina(chiave esterna per tabella cucina)
quantita (quantità ordinata)
se io per esempio eseguo un ordine(con id per esempio uguale a 15) di 3 prodotti dalla cucina(GRIGLIATA, PASTA, PESCE) e 4(BIRRA, COCA COLA, THE, CAFFé) dal bar ed eseguo questa query:
SELECT o.id, o.nome, o.tavolo, o.coperti, o.totale, o.resto, o.versato, c.nome as CUCINA,
dc.quantita as Q_CUC, c.prezzo as P_CUC, b.nome as BAR, db.quantita as Q_BAR,
b.prezzo as P_BAR
FROM ordine o left join dettaglio_ordine_bar db on o.id=db.id_ordine
left join bar b on b.id=db.id_bar left join dettaglio_ordine_cucina dc on
o.id=dc.id_ordine left join cucina c on c.id=dc.id_cucina where o.id='15'
mi vengono restituite, come si vede sotto, 12 righe invece di 7 perche le join mi sdoppiano i valori della cucina e del bar.
Risultato query (considerando solo le colonne CUCINA e BAR)
GRIGLIATA | BIRRA
PASTA | BIRRA
PESCE | BIRRA
GRIGLIATA | COCA COLA
PASTA | COCA COLA
PESCE | COCA COLA
GRIGLIATA | THE
PASTA | THE
PESCE | THE
GRIGLIATA | CAFFè
PASTA | CAFFè
PESCE | CAFFè
Come potrei fare per avere 7 righe come vorrei

Rispondi quotando