Spero di riuscire a spiegarmi...sarà l'ora tarda...ma ho un dubbio...
Semplificando la cosa faccio direttamente l'esempio.
Tabella tab_a
id - password - email - quota (contiene questi 4 campi con id chiave primaria) e tanto per esemplificare poniamo che sia così popolata:
1 - 123 - pippo@emai.it - 700
2 - 214 - mario@email.it - 600
3 - 444 - rino@tiscali.it - 400
4 - 345 - lara@tiscali.it - 800
Tabella tab_b
id1 - riga - scelta - relativoid - paga - stato (contiene questi 5 campi con id1 chiave primaria mentre relativoid si riferisce all'id di tab_a):
e poniamo sia così popolata
1 - 1 - 1 - 1 - 100 - 0
2 - 1 - 2 - 1 - 150 - 0
3 - 2 - 1 - 2 - 100 - 0
4 - 1 - 1 - 2 - 180 - 0
5 - 1 - 2 - 3 - 100 - 0
6 - 1 - 1 - 3 - 50 - 0
La modifica che dovrei fare è questa: portare a 1 la variabile booleana stato quando "riga" assume un determinato valore e "scelta" pure...:
UPDATE tab_b SET stato='1' WHERE riga='1' and scelta='1'
e quindi le righe interessate al cambio (nell'esempio sarebbero 3: la 1 la 4 e la 6).
Però contemporaneamente vorrei anche che nella tab_a si agisse tante volte quante sono le modifiche che ho fatto in tab_b e in particolare si andasse a incrementare "quota" del valore di "paga" quando l'id corrisponde a "relativoid".
Mi spiego meglio continuando l'esempio: il file tab_a dovrebbe essere modificato
- la riga 1 ha come "relativoid" il numero 1 e quindi in tab_a il "fondo" dell'id=1 dovrebbe diventare 700+100=800
- la riga 4 ha come "relativoid" il numero 2 e quindi in tab_a il "fondo" dell'id=2 dovrebbe diventare 600+180=780
- la riga 6 ha come "relativoid" il numero 3 e quindi in tab_a il "fondo" dell'id=3 dovrebbe diventare 400+50=450
Naturalmente niente vieta che possa esserci un 7° file in tab_b dove figuri ancora una volta riga=1, scelta=1 e un relativoid già trovato in precedenza.
Spero di essere stato sufficientemente chiaro anche se mi rendo conto che a prima vista la cosa può sembrare un po' ingarbugliata.
Il fatto è che se prima faccio la query come quella dell'esempio vengono cambiate tutte le righe che soddisfano quelle condizioni ma io per ogni singola riga devo poi operare il cambiamento anche sulla tabella tab_a
Devo usare join? Devo impostare le query in modo diverso?
La prima cosa che mi è venuta in mente è stata di agire con SELECT e scandagliare tutto tab_b e a mano a mano che trovo un file che soddisfa i requisiti modificare quello e andare a fare la modifica su tab_b però non l'ho provato perché mi sembra troppo macchinoso...e mi chiedevo se c'era qualcosa di più veloce...
Grazie!

Rispondi quotando
fortemente sottinteso......
