-
mysql tabelle
Domanda difficile
Ho questa query:
Codice PHP:
$query1="SELECT * FROM ciclazione,agente WHERE ID_agente=ID_ciclazione ORDER BY cognome";
Che unisce due tabelle medeante l'id.
Ho la necessità di crearne un'altra dove id_agente 1 venga collegato con l'id_ciclazione 2 e cosi via mentre l'ultimo id_agente venga collegato con il primo id_ciclazione.
Come posso fare?
-
In parte risolto con questa query:
Codice PHP:
$query1="SELECT * FROM ciclazione,agente WHERE ID_ciclazione=ID_agente+1 ORDER BY cognome";
Ma come risposta mi da 214 record invece di 215
come lego l'ultimo record della tabella agente con il primo della tabella ciclazione?
-
Purtroppo io e sql abbiamo litigato da bambini, :) ma credo che per te ci vogliano i cursori...Trovi tante guide online sull'utilizzo dei cursori,ciao
-
Provo a studiarli grazie della dritta
-
Come implemento il cursore nella mia pagina php?
-
Non credo che i cursori siano lo strumento ottimale :D
Il codice sotto dovrebbe funzionare per quello che ti sei proposto ;)
Codice PHP:
SELECT * FROM ciclazione,agente WHERE ID_ciclazione=ID_agente+1 OR ID_agente=( SELECT max(ID_agente) FROM agente) AND ID_ciclazione=( SELECT min(ID_ciclazione) FROM ciclazione) ORDER BY cognome
Tieni in considerazione che per unire più tabelle puoi utilizzare anche le Join (Inner, left, right etc.).
Fammi sapere se funge, byee!
-
Si funziona, ma per fare ciò esiste un metodo più semplice? Provo a spiegarmi il programma è gestito da 3 tabelle data, ciclazione, agente (ciclazione ed agente hanno 215 record) i campi delle tabelle sono i seguenti:
data -> ID_data, data;
ciclazione -> ID_ciclazione, lunerdi, martedi, mercoledi, giovedi, venerdi, sabato, domenica;
agente -> ID_agente, cognome nome.
ogni settimana dovrei legare ID_ciclazione a ID_agente in questo modo
I° settimana ID_ciclazione 1 2 3 4 5 -> ID_agente 1 2 3 4 5
II° settimana ID_ciclazione 1 2 3 4 5 -> ID_agente 5 1 2 3 4
III° settimana ID_ciclazione 1 2 3 4 5 -> ID_agente 4 5 1 2 3
e cosi via.......
Consigli?
-
Non capisco allora, non deve essere ciclazione = agente +1 e prima cliclazione = ultimo agente perchè hai 5 agenti ma una volta è l'ultimo ad avere ciclazione 1 un'altra volta è il 5 e poi il 4, stai ciclando i giorni delle settimane con gli agenti, il cursore fa proprio questo cicla, è come un ciclio for, però ripeto io non sono proprio esperto di sql, a lavoro lo uso marginalmente quindi probabilmente dico anche delle fesserie
-
la ciclazione in questione deve ciclare 215 agenti per 215 settimane ogni riga della ciclazione equivale a sette turni quello era un esempio di come cicla, inoltre deve tener conto della data che deve restituire il servizio giornaliero ho inoziato a farlo con dei cicli switch ma ho trovato un errore. Consigli su come farlo?