Hay veces que perdemos tiempo en hacer unos script para cosas que se pueden hacer con una simple sentencia de base de datos. Imaginemos el caso:
Tabla1 con las columnas id,campo1,campo2
Tabla2 con las columnas id,id1,id2
y queremos actualizar todos los campos id1 con el valor de campo1 y todos los campos id2 con el valor de campo2. La tabla tiene la relación por el campo id.
Ejemplo:
Tabla1
1 valor1 valor2
2 valor5 valor6
Tabla2
1 registro1 registro2
1 registro3 registro4
2 registro5 registro6
Con la siguiente consulta:
update Tabla1 t1,Tabla2 t2
set t2.id1=t1.campo1,t2.id2=t1.campo2
where t1.id=t2.id
Con este update, actualizariamos los registros para cada identificador. Es decir, el resultado sería:
Tabla1
1 valor1 valor2
2 valor5 valor6
Tabla2
1 valor1 valor2
1 valor1 valor2
2 valor5 valor6
Espero os sea de ayuda.
UPDATE Cliente
INNER JOIN (SELECT Nreg, count(id) total FROM [Máquinas] GROUP BY [Máquinas].nreg)
t1 ON t1.nreg = Cliente.nreg
SET Cliente.Cant_Maq = t1.total;
Me da error de sintaxis cerca de Inner
me da error de sistaxis cerca de T1
Ayuda por favor
Gracias
Con un update no puedes hacer un inner join.
Deberia ser algo así
UPDATE Cliente, (SELECT Nreg, count(id) total FROM [Máquinas] GROUP BY [Máquinas].nreg)
t1
SET Cliente.Cant_Maq = t1.total
WHERE t1.nreg = Cliente.nreg;