Estructuras de control

08/09/2003 - 16:37 por Harold Godefroy | Informe spam
Disculpen la brutalidad, pero no doy con lo que quiero hacer y pues recurro
a los expertos. Lo que quiero hacer me gustaria que corriera en MySQL, sin
embargo no pararle mucho a esto y darme una manita :)

Lo que necesito es recorrer una tabla y actualizar otra segun los valores de
la primera, seria algo mas o menos asi: (Anda que programo en Foxpro, pero
no lo tengo instalado en la empresa ya que aqui trabajo en Delphi)

Do While !EOF(tabla1)
Update tabla2 set campo1=tabla1.campo1 Where tabla2.campo1 = tabla1.campo2
Skip 1 in 'tabla1'
EndDo

Disculpen lo "feo" de la pregunta, pero ando atascado con esto.

Saludos.
T.S.U. Harold Godefroy. Caracas - Venezuela
Coordinador Portalfox Venezuela
http://venezuela.portalfox.com
h a r o l d g o d e f r o y @ p o r t a l f o x . c o m

"Sí, soy un criminal, mi crimen es la curiosidad.
Mi crimen es juzgar a la gente por lo que dice y
piensa, no por lo que parece. Mi crimen es que
soy más listo que tu, algo que no me puedes perdonar."
The Mentor

Preguntas similare

Leer las respuestas

#1 José Luis
08/09/2003 - 16:57 | Informe spam
Si no me equivoco sería algo así:

UPDATE tabla2
SET tabla2.campo1=tabla1.campo1
FROM tabla1
WHERE tabla2.campo1 = tabla1.campo2

Saludos.
José Luis.



Disculpen la brutalidad, pero no doy con lo que quiero


hacer y pues recurro
a los expertos. Lo que quiero hacer me gustaria que


corriera en MySQL, sin
embargo no pararle mucho a esto y darme una manita :)

Lo que necesito es recorrer una tabla y actualizar otra


segun los valores de
la primera, seria algo mas o menos asi: (Anda que


programo en Foxpro, pero
no lo tengo instalado en la empresa ya que aqui trabajo


en Delphi)

Do While !EOF(tabla1)
Update tabla2 set campo1=tabla1.campo1 Where


tabla2.campo1 = tabla1.campo2
Skip 1 in 'tabla1'
EndDo

Disculpen lo "feo" de la pregunta, pero ando atascado con


esto.

Saludos.


T.S.U. Harold Godefroy. Caracas - Venezuela
Coordinador Portalfox Venezuela
http://venezuela.portalfox.com
h a r o l d g o d e f r o y @ p o r t a l f o x . c o m

"Sí, soy un criminal, mi crimen es la curiosidad.
Mi crimen es juzgar a la gente por lo que dice y
piensa, no por lo que parece. Mi crimen es que
soy más listo que tu, algo que no me puedes perdonar."
The Mentor



.

Respuesta Responder a este mensaje
#2 Harold Godefroy
08/09/2003 - 17:09 | Informe spam
Gracias por responder chicos, a la verdad queria conformacion antes de hacer
lo que tenia pensado, ya que la tabla tiene mas de 500.000 registros y es
bastante tedioso tener que estar restaurando backups por si algo sale mal.
He puesto la instruccion tal como me lo han corroborado, la cual es la
siguiente:

Update registros set COD_CRI = z_criadores.codigo_cri Where
registros.COD_CRI = z_criadores.codigo

Sin embargo ejecute la sentencia (a todo riesgo) y me da un mensaje de error
que dice: "Unknow table z_criadores in Where clausule". ¿Sera que no se
puede colocar referencias a otras tablas en la clausula where de una
sentencia Update?

La tabla registros contiene un campo llamado COD_CRI, que contiene el codigo
de el criador, el problema es que en la tabla existen multiples codigos
COD_CRI diferentes que apuntan a varios registros de criador, pero que a la
final son los mismos (lo que varia es que en la descripcion pusieron el
nombre mal escrito, o con acentos, etc). Mi trabajo es normalizar todos esos
registros, colocandoles un codigo unico al criador.

Saludos.
T.S.U. Harold Godefroy. Caracas - Venezuela
Coordinador Portalfox Venezuela
http://venezuela.portalfox.com
h a r o l d g o d e f r o y @ p o r t a l f o x . c o m

"Sí, soy un criminal, mi crimen es la curiosidad.
Mi crimen es juzgar a la gente por lo que dice y
piensa, no por lo que parece. Mi crimen es que
soy más listo que tu, algo que no me puedes perdonar."
The Mentor



"Harold Godefroy" escribió en el mensaje
news:OzM%
Disculpen la brutalidad, pero no doy con lo que quiero hacer y pues


recurro
a los expertos. Lo que quiero hacer me gustaria que corriera en MySQL, sin
embargo no pararle mucho a esto y darme una manita :)

Lo que necesito es recorrer una tabla y actualizar otra segun los valores


de
la primera, seria algo mas o menos asi: (Anda que programo en Foxpro, pero
no lo tengo instalado en la empresa ya que aqui trabajo en Delphi)

Do While !EOF(tabla1)
Update tabla2 set campo1=tabla1.campo1 Where tabla2.campo1 tabla1.campo2
Skip 1 in 'tabla1'
EndDo

Disculpen lo "feo" de la pregunta, pero ando atascado con esto.

> Saludos.
T.S.U. Harold Godefroy. Caracas - Venezuela
Coordinador Portalfox Venezuela
http://venezuela.portalfox.com
h a r o l d g o d e f r o y @ p o r t a l f o x . c o m

"Sí, soy un criminal, mi crimen es la curiosidad.
Mi crimen es juzgar a la gente por lo que dice y
piensa, no por lo que parece. Mi crimen es que
soy más listo que tu, algo que no me puedes perdonar."
The Mentor



Respuesta Responder a este mensaje
#3 Mariano Alvarez
08/09/2003 - 17:28 | Informe spam
Te falta el FROM

Update registros
set COD_CRI = z_criadores.codigo_cri
from z_criadores -- Te faltaba esta tabla
Where
registros.COD_CRI = z_criadores.codigo

Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar



"Harold Godefroy" wrote in message
news:eFf%
Gracias por responder chicos, a la verdad queria conformacion antes de


hacer
lo que tenia pensado, ya que la tabla tiene mas de 500.000 registros y es
bastante tedioso tener que estar restaurando backups por si algo sale mal.
He puesto la instruccion tal como me lo han corroborado, la cual es la
siguiente:

Update registros set COD_CRI = z_criadores.codigo_cri Where
registros.COD_CRI = z_criadores.codigo

Sin embargo ejecute la sentencia (a todo riesgo) y me da un mensaje de


error
que dice: "Unknow table z_criadores in Where clausule". ¿Sera que no se
puede colocar referencias a otras tablas en la clausula where de una
sentencia Update?

La tabla registros contiene un campo llamado COD_CRI, que contiene el


codigo
de el criador, el problema es que en la tabla existen multiples codigos
COD_CRI diferentes que apuntan a varios registros de criador, pero que a


la
final son los mismos (lo que varia es que en la descripcion pusieron el
nombre mal escrito, o con acentos, etc). Mi trabajo es normalizar todos


esos
registros, colocandoles un codigo unico al criador.

> Saludos.
T.S.U. Harold Godefroy. Caracas - Venezuela
Coordinador Portalfox Venezuela
http://venezuela.portalfox.com
h a r o l d g o d e f r o y @ p o r t a l f o x . c o m

"Sí, soy un criminal, mi crimen es la curiosidad.
Mi crimen es juzgar a la gente por lo que dice y
piensa, no por lo que parece. Mi crimen es que
soy más listo que tu, algo que no me puedes perdonar."
The Mentor



"Harold Godefroy" escribió en el mensaje
news:OzM%
> Disculpen la brutalidad, pero no doy con lo que quiero hacer y pues
recurro
> a los expertos. Lo que quiero hacer me gustaria que corriera en MySQL,


sin
> embargo no pararle mucho a esto y darme una manita :)
>
> Lo que necesito es recorrer una tabla y actualizar otra segun los


valores
de
> la primera, seria algo mas o menos asi: (Anda que programo en Foxpro,


pero
> no lo tengo instalado en la empresa ya que aqui trabajo en Delphi)
>
> Do While !EOF(tabla1)
> Update tabla2 set campo1=tabla1.campo1 Where tabla2.campo1 > tabla1.campo2
> Skip 1 in 'tabla1'
> EndDo
>
> Disculpen lo "feo" de la pregunta, pero ando atascado con esto.
>
> > > Saludos.
> T.S.U. Harold Godefroy. Caracas - Venezuela
> Coordinador Portalfox Venezuela
> http://venezuela.portalfox.com
> h a r o l d g o d e f r o y @ p o r t a l f o x . c o m
>
> "Sí, soy un criminal, mi crimen es la curiosidad.
> Mi crimen es juzgar a la gente por lo que dice y
> piensa, no por lo que parece. Mi crimen es que
> soy más listo que tu, algo que no me puedes perdonar."
> The Mentor
>
>
>


Respuesta Responder a este mensaje
#4 Harold Godefroy
08/09/2003 - 17:32 | Informe spam
Esa sintaxis creo que no es correcta, mi problema creo que radica en esto:
(Tomado de la documentacion de MySQL)

Starting with MySQL Version 4.0.4, you can also perform UPDATE operations
that cover multiple tables:

UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;

Yo tengo MySQL ver 4.0.12

Saludos.
T.S.U. Harold Godefroy. Caracas - Venezuela
Coordinador Portalfox Venezuela
http://venezuela.portalfox.com
h a r o l d g o d e f r o y @ p o r t a l f o x . c o m

"Sí, soy un criminal, mi crimen es la curiosidad.
Mi crimen es juzgar a la gente por lo que dice y
piensa, no por lo que parece. Mi crimen es que
soy más listo que tu, algo que no me puedes perdonar."
The Mentor

"Mariano Alvarez" escribió en el mensaje
news:
Te falta el FROM

Update registros
set COD_CRI = z_criadores.codigo_cri
from z_criadores -- Te faltaba esta tabla
Where
registros.COD_CRI = z_criadores.codigo

Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar



"Harold Godefroy" wrote in message
news:eFf%
> Gracias por responder chicos, a la verdad queria conformacion antes de
hacer
> lo que tenia pensado, ya que la tabla tiene mas de 500.000 registros y


es
> bastante tedioso tener que estar restaurando backups por si algo sale


mal.
> He puesto la instruccion tal como me lo han corroborado, la cual es la
> siguiente:
>
> Update registros set COD_CRI = z_criadores.codigo_cri Where
> registros.COD_CRI = z_criadores.codigo
>
> Sin embargo ejecute la sentencia (a todo riesgo) y me da un mensaje de
error
> que dice: "Unknow table z_criadores in Where clausule". ¿Sera que no se
> puede colocar referencias a otras tablas en la clausula where de una
> sentencia Update?
>
> La tabla registros contiene un campo llamado COD_CRI, que contiene el
codigo
> de el criador, el problema es que en la tabla existen multiples codigos
> COD_CRI diferentes que apuntan a varios registros de criador, pero que a
la
> final son los mismos (lo que varia es que en la descripcion pusieron el
> nombre mal escrito, o con acentos, etc). Mi trabajo es normalizar todos
esos
> registros, colocandoles un codigo unico al criador.
>
> > > Saludos.
> T.S.U. Harold Godefroy. Caracas - Venezuela
> Coordinador Portalfox Venezuela
> http://venezuela.portalfox.com
> h a r o l d g o d e f r o y @ p o r t a l f o x . c o m
>
> "Sí, soy un criminal, mi crimen es la curiosidad.
> Mi crimen es juzgar a la gente por lo que dice y
> piensa, no por lo que parece. Mi crimen es que
> soy más listo que tu, algo que no me puedes perdonar."
> The Mentor
>
>
>
> "Harold Godefroy" escribió en el mensaje
> news:OzM%
> > Disculpen la brutalidad, pero no doy con lo que quiero hacer y pues
> recurro
> > a los expertos. Lo que quiero hacer me gustaria que corriera en MySQL,
sin
> > embargo no pararle mucho a esto y darme una manita :)
> >
> > Lo que necesito es recorrer una tabla y actualizar otra segun los
valores
> de
> > la primera, seria algo mas o menos asi: (Anda que programo en Foxpro,
pero
> > no lo tengo instalado en la empresa ya que aqui trabajo en Delphi)
> >
> > Do While !EOF(tabla1)
> > Update tabla2 set campo1=tabla1.campo1 Where tabla2.campo1 > > tabla1.campo2
> > Skip 1 in 'tabla1'
> > EndDo
> >
> > Disculpen lo "feo" de la pregunta, pero ando atascado con esto.
> >
> > > > > Saludos.
> > T.S.U. Harold Godefroy. Caracas - Venezuela
> > Coordinador Portalfox Venezuela
> > http://venezuela.portalfox.com
> > h a r o l d g o d e f r o y @ p o r t a l f o x . c o m
> >
> > "Sí, soy un criminal, mi crimen es la curiosidad.
> > Mi crimen es juzgar a la gente por lo que dice y
> > piensa, no por lo que parece. Mi crimen es que
> > soy más listo que tu, algo que no me puedes perdonar."
> > The Mentor
> >
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Harold Godefroy
08/09/2003 - 17:37 | Informe spam
Jod*r, ¿no se supone que 4.0.12 es mayor que 4.0.4? Decirme si ando
equivocado :s

Saludos.
T.S.U. Harold Godefroy. Caracas - Venezuela
Coordinador Portalfox Venezuela
http://venezuela.portalfox.com
h a r o l d g o d e f r o y @ p o r t a l f o x . c o m

"Sí, soy un criminal, mi crimen es la curiosidad.
Mi crimen es juzgar a la gente por lo que dice y
piensa, no por lo que parece. Mi crimen es que
soy más listo que tu, algo que no me puedes perdonar."
The Mentor


"Harold Godefroy" escribió en el mensaje
news:
Esa sintaxis creo que no es correcta, mi problema creo que radica en esto:
(Tomado de la documentacion de MySQL)

Starting with MySQL Version 4.0.4, you can also perform UPDATE operations
that cover multiple tables:

UPDATE items,month SET items.price=month.price
WHERE items.id=month.id;

Yo tengo MySQL ver 4.0.12

> Saludos.
T.S.U. Harold Godefroy. Caracas - Venezuela
Coordinador Portalfox Venezuela
http://venezuela.portalfox.com
h a r o l d g o d e f r o y @ p o r t a l f o x . c o m

"Sí, soy un criminal, mi crimen es la curiosidad.
Mi crimen es juzgar a la gente por lo que dice y
piensa, no por lo que parece. Mi crimen es que
soy más listo que tu, algo que no me puedes perdonar."
The Mentor

"Mariano Alvarez" escribió en el mensaje
news:
> Te falta el FROM
>
> Update registros
> set COD_CRI = z_criadores.codigo_cri
> from z_criadores -- Te faltaba esta tabla
> Where
> registros.COD_CRI = z_criadores.codigo
>
> Jose Mariano Alvarez
> Comunidad de base de datos
> Grupo de Usuarios Microsoft
> www.mug.org.ar
>
>
>
> "Harold Godefroy" wrote in message
> news:eFf%
> > Gracias por responder chicos, a la verdad queria conformacion antes de
> hacer
> > lo que tenia pensado, ya que la tabla tiene mas de 500.000 registros y
es
> > bastante tedioso tener que estar restaurando backups por si algo sale
mal.
> > He puesto la instruccion tal como me lo han corroborado, la cual es la
> > siguiente:
> >
> > Update registros set COD_CRI = z_criadores.codigo_cri Where
> > registros.COD_CRI = z_criadores.codigo
> >
> > Sin embargo ejecute la sentencia (a todo riesgo) y me da un mensaje de
> error
> > que dice: "Unknow table z_criadores in Where clausule". ¿Sera que no


se
> > puede colocar referencias a otras tablas en la clausula where de una
> > sentencia Update?
> >
> > La tabla registros contiene un campo llamado COD_CRI, que contiene el
> codigo
> > de el criador, el problema es que en la tabla existen multiples


codigos
> > COD_CRI diferentes que apuntan a varios registros de criador, pero que


a
> la
> > final son los mismos (lo que varia es que en la descripcion pusieron


el
> > nombre mal escrito, o con acentos, etc). Mi trabajo es normalizar


todos
> esos
> > registros, colocandoles un codigo unico al criador.
> >
> > > > > Saludos.
> > T.S.U. Harold Godefroy. Caracas - Venezuela
> > Coordinador Portalfox Venezuela
> > http://venezuela.portalfox.com
> > h a r o l d g o d e f r o y @ p o r t a l f o x . c o m
> >
> > "Sí, soy un criminal, mi crimen es la curiosidad.
> > Mi crimen es juzgar a la gente por lo que dice y
> > piensa, no por lo que parece. Mi crimen es que
> > soy más listo que tu, algo que no me puedes perdonar."
> > The Mentor
> >
> >
> >
> > "Harold Godefroy" escribió en el mensaje
> > news:OzM%
> > > Disculpen la brutalidad, pero no doy con lo que quiero hacer y pues
> > recurro
> > > a los expertos. Lo que quiero hacer me gustaria que corriera en


MySQL,
> sin
> > > embargo no pararle mucho a esto y darme una manita :)
> > >
> > > Lo que necesito es recorrer una tabla y actualizar otra segun los
> valores
> > de
> > > la primera, seria algo mas o menos asi: (Anda que programo en


Foxpro,
> pero
> > > no lo tengo instalado en la empresa ya que aqui trabajo en Delphi)
> > >
> > > Do While !EOF(tabla1)
> > > Update tabla2 set campo1=tabla1.campo1 Where tabla2.campo1 > > > tabla1.campo2
> > > Skip 1 in 'tabla1'
> > > EndDo
> > >
> > > Disculpen lo "feo" de la pregunta, pero ando atascado con esto.
> > >
> > > > > > > Saludos.
> > > T.S.U. Harold Godefroy. Caracas - Venezuela
> > > Coordinador Portalfox Venezuela
> > > http://venezuela.portalfox.com
> > > h a r o l d g o d e f r o y @ p o r t a l f o x . c o m
> > >
> > > "Sí, soy un criminal, mi crimen es la curiosidad.
> > > Mi crimen es juzgar a la gente por lo que dice y
> > > piensa, no por lo que parece. Mi crimen es que
> > > soy más listo que tu, algo que no me puedes perdonar."
> > > The Mentor
> > >
> > >
> > >
> >
> >
>
>



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida