Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Update de un campo de una tabla a otro de otra tabla

Estas en el tema de Update de un campo de una tabla a otro de otra tabla en el foro de Mysql en Foros del Web. Buenas tengo una duda que no se como realizarla tengo en una bd dos tablas una de noticias y otra de medios. La de noticias ...
  #1 (permalink)  
Antiguo 22/10/2009, 07:43
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 0
Update de un campo de una tabla a otro de otra tabla

Buenas tengo una duda que no se como realizarla tengo en una bd dos tablas una de noticias y otra de medios.

La de noticias recoge una serie de registros que tiene los campos (Titulo,sumario,link,autor y categoria)
La de medios recoge el nombre de los medios y su url con los campos (nombre y url)
El problema es que yo meto las noticias através de un parseador de rss pero el autor de algunos medios viene mal clasificado viniendo el nombre del redactor y yo solo quiero los nombres de los medios.

Puedo hacer un update tras la inserción de nuevos registros en la bd que haga que el campo autor se actualice por el campo nombre del medio?

Intenté hacer alguna comparación pero claro ningun campo se relaciona entre ambas tablas no se si se podría hacer que compara la url del medio con el link de la noticia hasta http://www.farodevigo.es por ejemplo y ahí se cortara la comparación y entendiera que la noticia tal tiene que ver con el medio tal y actualizara.

ej
Tabla noticias
Id 1 --> el madrid pierde con el milán (titulo) / El milán se llevo.... (sumario) www.farodevigo.es/elmadridpierde.html (link) / Pedro Quintana (autor) / Noticias(Categoria)

Tabla medio
Id 1 --> el faro de vigo (nombre) / www.elfarodevigo.es (url)
Id2 --> El correo gallego (nombre) / www.elcorreogallego.es

Utilizo el phpmyadmin para administrar la bd

Saludos y gracias
  #2 (permalink)  
Antiguo 22/10/2009, 08:38
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Update de un campo de una tabla a otro de otra tabla

Si se puede, usando substr y length
  #3 (permalink)  
Antiguo 22/10/2009, 16:41
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 0
Respuesta: Update de un campo de una tabla a otro de otra tabla

Cita:
Iniciado por darkasecas Ver Mensaje
Si se puede, usando substr y length
Y como funcionan esos comandos? me puedes poner un ejemplo? no me quedam uy claro leyendo el manual mysql
  #4 (permalink)  
Antiguo 22/10/2009, 16:50
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Update de un campo de una tabla a otro de otra tabla

Código:
--------------------
|tabla                    | 
--------------------
|campo1  | campo2  |
---------------------
|blahblah |  blu        |
--------------------
Código:
select substr(campo1,1,5) from tabla
devuelve
blahb

Código:
select length(campo2) from tabla
devuelve
3

combinandolas

Código:
select substr(campo1,1,length(campo2)) from tabla
devuelve
bla
  #5 (permalink)  
Antiguo 23/10/2009, 01:15
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 0
Respuesta: Update de un campo de una tabla a otro de otra tabla

Pero esto es desde la misma tabla no vale para lo que quiero hacer yo aparte Length es para devolver numéricamente el nº de caracteres.

SUBSTR(cad, m[,n]) Devuelve la subcadena de cad que abarca desde m hasta el numero de caracteres dados por n.
LENGTH(cad) Devuelve en número de caracteres de cad

Cuando yo lo que quiero es actualizar un campo de una tabla por otro de otra tabla

Última edición por Hamwe; 23/10/2009 a las 01:50
  #6 (permalink)  
Antiguo 23/10/2009, 04:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Update de un campo de una tabla a otro de otra tabla

Código SQL:
Ver original
  1. UPDATE tablaA TA INNER JOIN tablaB TB ON TA.id_TA = TB.id_TA
  2. SET TA.campoA = TB.campoB;

Debe existir un campo que las relacione. Estoy suponiendo que la segunda tiene una FK que la relaciona con la primera.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 23/10/2009, 04:42
 
Fecha de Ingreso: abril-2008
Mensajes: 70
Antigüedad: 16 años
Puntos: 0
Respuesta: Update de un campo de una tabla a otro de otra tabla

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Código SQL:
Ver original
  1. UPDATE tablaA TA INNER JOIN tablaB TB ON TA.id_TA = TB.id_TA
  2. SET TA.campoA = TB.campoB;

Debe existir un campo que las relacione. Estoy suponiendo que la segunda tiene una FK que la relaciona con la primera.
Eso tiene muy buena pinta aunque claro el problema que se me plantea es que los campos no están relacionados entre sílo cual complica la cosa
  #8 (permalink)  
Antiguo 23/10/2009, 05:17
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Update de un campo de una tabla a otro de otra tabla

Si no hay forma de relacionar los campos de algún modo, es probable que haya un error de diseño,ya que si los valores de una tabla se usan para actualizar otra, forzosamente debe haber alguna cosa que relacione un registro de una con el registro de la otra.
En cualquier caso, si no es posible establecer esa relación (no imagino un caso puntual), es posible que debas recurrir a la aplicación, ya que el SQL no te podrá resolver la incógnita.
¿No será que te falta una tabla que vincule la noticia con el medio?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 23/10/2009, 08:09
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Update de un campo de una tabla a otro de otra tabla

Cita:
Iniciado por Hamwe Ver Mensaje
Intenté hacer alguna comparación pero claro ningun campo se relaciona entre ambas tablas no se si se podría hacer que compara la url del medio con el link de la noticia hasta http://www.farodevigo.es por ejemplo y ahí se cortara la comparación y entendiera que la noticia tal tiene que ver con el medio tal y actualizara.

ej
Tabla noticias
Id 1 --> el madrid pierde con el milán (titulo) / El milán se llevo.... (sumario) www.farodevigo.es/elmadridpierde.html (link) / Pedro Quintana (autor) / Noticias(Categoria)

Tabla medio
Id 1 --> el faro de vigo (nombre) / www.elfarodevigo.es (url)
Id2 --> El correo gallego (nombre) / www.elcorreogallego.es
Eso se puede hacer utilizando las funciones que te dije, incluso te di un ejemplo para una tabla, pero la misma logica sirve para dos tablas, solo hay que pensarle un poco
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:34.