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

Alguien puede traducirme esta consulta SQL

Estas en el tema de Alguien puede traducirme esta consulta SQL en el foro de Bases de Datos General en Foros del Web. Código PHP: REPLACE INTO tabla1  ( login ,  id_juego ,  puntaje )          SELECT login ,  id_juego ,  max ( puntaje ) as  puntaje         FROM tabla2 t2         GROUP BY t2 . login ,  ...
  #1 (permalink)  
Antiguo 14/04/2009, 09:48
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 8 meses
Puntos: 5
Alguien puede traducirme esta consulta SQL

Código PHP:
REPLACE INTO tabla1 (loginid_juegopuntaje)
        
SELECT loginid_juegomax(puntaje) as puntaje
        FROM tabla2 t2
        GROUP BY t2
.logint2.id_juego
        ORDER BY id_juego asc
puntaje desc 
Es de un sitio antiguo que tengo que actualizar, pero nunca antes me habia topado con la consulta REPLACE.

Cuando la ejecuto en Local, me agrega una fila nueva, pero no sigue el auto_increment. Entonces no se para que sirve.

Cualquier ayuda me sirve.

Gracias de antemano.
  #2 (permalink)  
Antiguo 14/04/2009, 09:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Alguien puede traducirme esta consulta SQL

Tema trasladado desde PHP.
  #3 (permalink)  
Antiguo 14/04/2009, 10:11
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, 6 meses
Puntos: 2658
Respuesta: Alguien puede traducirme esta consulta SQL

REPLACE es una sentencia de MySQL que funciona en forma similar a un INSERT pero que si existe ya en la tabla un registro con la misma clave, la nueva inserción reemplaza completamente el registro viejo por el nuevo, manteniendo su ID.
Por esa razón es que no ves modificación en el AUTO_INCREMENT. En realidad no puede modificarlo porque simplemente reemplaza los valores de los campos implicados.
En alguna forma funciona como una combinación entre un INSERT y un UPDATE, pero es mucho más rápido y poderoso.
El problema en tu caso, es que si alguno de los datos de Tabla1 debiera conservarse, porque se pierden al reemplazarlo, esta sentencia no es la mejor para esa tarea.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 14/04/2009, 11:15
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 3 meses
Puntos: 45
Respuesta: Alguien puede traducirme esta consulta SQL

Para una info mas detallada revisa la doc

http://dev.mysql.com/doc/refman/5.0/es/replace.html

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #5 (permalink)  
Antiguo 14/04/2009, 13:25
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 8 meses
Puntos: 5
Respuesta: Alguien puede traducirme esta consulta SQL

Un amigo me pasó esta URL.

Está más facil de entender.

http://www.java2s.com/Tutorial/MySQL...EPLACEINTO.htm

Muchas graciS!!

Última edición por SCY-FOX; 14/04/2009 a las 13:30 Razón: no pegue la url xD
  #6 (permalink)  
Antiguo 14/04/2009, 13:51
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, 6 meses
Puntos: 2658
Respuesta: Alguien puede traducirme esta consulta SQL

Cita:
Iniciado por SCY-FOX Ver Mensaje
Un amigo me pasó esta URL.

Está más facil de entender.

http://www.java2s.com/Tutorial/MySQL...EPLACEINTO.htm

Muchas graciS!!
Interesante ejemplo, pero cuando lo sometes a una prueba de escritorio, puedes ver que no muestra el comportamiento tal y como es, por cuanto el SELECT devuelve solamente 2 registros y el REPLACE funciona en presencia de duplicaciones de PRIMARY KEY, que en ese caso no se presentan (solo hay un registro con "Rock" y uno con "Country" y el TopicID no se repite jamás en la tabla origen).
__________________
¿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 14/04/2009, 14:24
Avatar de SCY-FOX  
Fecha de Ingreso: septiembre-2007
Ubicación: Chile
Mensajes: 139
Antigüedad: 16 años, 8 meses
Puntos: 5
Respuesta: Alguien puede traducirme esta consulta SQL

Mmm igual complicado entonces... porque en una tabla A tengo que guardar un "resumen" de la tabla B.

creo que exigirá mayor cabeceo..

Gracias por los aportes... si se me ocurre algo lo posteo acá.
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 00:16.