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

sENTENCIA PARA COMPARAR TABLAS

Estas en el tema de sENTENCIA PARA COMPARAR TABLAS en el foro de Mysql en Foros del Web. Soy nueva en esto, asi q necesitare mucha ayuda y paciencia. Les explico mi caso: Tengo 2 tablas, una se llama lista1 y la otra, ...
  #1 (permalink)  
Antiguo 27/12/2010, 18:38
 
Fecha de Ingreso: diciembre-2010
Mensajes: 23
Antigüedad: 13 años, 3 meses
Puntos: 1
Exclamación sENTENCIA PARA COMPARAR TABLAS

Soy nueva en esto, asi q necesitare mucha ayuda y paciencia.
Les explico mi caso:
Tengo 2 tablas, una se llama lista1 y la otra, lista2
lista1 tiene id y un campo llamado valor
lista2 tiene: Id y un campo llamado objetos

lo q debo hacer, es comparar si hay valores coincidentes entre los campos objetos de lista2, y valor de lista1

la sentencia q estoy usando es: Select objetos from lista2 where objetos = lista1.valor

pero nada me sale.

Q estoy haciendo mal??
  #2 (permalink)  
Antiguo 27/12/2010, 20:48
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: sENTENCIA PARA COMPARAR TABLAS

Cita:
Q estoy haciendo mal??
Bueno, sin animo de ofender, pero lo que te está faltando es leer un manual básico de SQL...
Es difícil ayudarte porque la consulta que planteas muestra que no has leído nada del tema; necesitaría explicarte cosas muy elementales del SQL y las consultas y eso sería más propio de un tutorial que de un foro.

Mi sugerencia es que primero leas algo de SQL y Bases de Datos en la página Maestros del Web, y luego empecemos desde el inicio con las dudas.

Repito: Sin animo de ofender.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 28/12/2010, 10:20
 
Fecha de Ingreso: diciembre-2010
Mensajes: 23
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: sENTENCIA PARA COMPARAR TABLAS

Lo q hice a final de cuentas fue esto :
"select valor from lista1 inner join lista2 on lista1.valor = lista2.objetos"

ahora lo q necesito es guardar ese resultado en una tabla al momento q se presione un boton. Y claro, la idea es q si presionan el botón varias veces, la data no deberia guardarse tantas veces, sino 1 vez.

Se puede eso solo con mysql??



Cita:
Iniciado por gnzsoloyo Ver Mensaje
bueno, sin animo de ofender, pero lo que te está faltando es leer un manual básico de sql...
Es difícil ayudarte porque la consulta que planteas muestra que no has leído nada del tema; necesitaría explicarte cosas muy elementales del sql y las consultas y eso sería más propio de un tutorial que de un foro.

Mi sugerencia es que primero leas algo de sql y bases de datos en la página [url="http://www.maestrosdelweb.com/editorial/tutsql1/"][b]maestros del web[/b],[/url] y luego empecemos desde el inicio con las dudas.

Repito: Sin animo de ofender.
  #4 (permalink)  
Antiguo 28/12/2010, 11:28
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: sENTENCIA PARA COMPARAR TABLAS

Bien resuelto.

Cita:
ahora lo q necesito es guardar ese resultado en una tabla al momento q se presione un boton. Y claro, la idea es q si presionan el botón varias veces, la data no debería guardarse tantas veces, sino 1 vez.
Hay muchas formas de hacerlo, empezando por hacerlo desde la aplicación.
En esos casos lo que suele hacerse es que sólo se pueda guardar cuando se llenan los campos, y luego del primer click en el botón este se desactive hasta la próxima validación de datos.
Usar la base para evitar duplicidades exige dos cosas: 1) Validar los datos contra la base, 2) que la base sea diseñada de modo que esos datos no se dupliquen.
La primera parte es simple: Realizas la consulta con aquella combinación de datos que no se debe duplicar, y si existen ya, no se realiza la operación.
La segunda implica que debes determinar qué datos no se deben duplicar y con ellos crear un índice UNIQUE.

Ahora bien, para determinar el indice UNIQUE necesitas analizar la estructura de los datos y fijarte qué dato o conjunto de datos (que no sean la PK si esta es un auto_increment) no deben duplicarse y con ellos armar el índice UNIQUE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 28/12/2010, 11:40
 
Fecha de Ingreso: diciembre-2010
Mensajes: 23
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: sENTENCIA PARA COMPARAR TABLAS

Claro, tendría q hacer un cotejamiento de datos para evitar duplicidad, pero eso detendría la operacion entera, no?

Porque ambas tablas van a crecer, y la consulta de filtrado se hará de nuevo para ver nuevas coincidencias, entonces, al hacer el filtrado nuevamente, saldran las coincidencias antiguas y las nuevas....
Y habría q guardar sólo las nuevas....a menos q se chanque o sobre-escriba la data vieja; y la nueva sólo se adhiere...

Creo q me estoy haciendo bolas :S


Cita:
Iniciado por gnzsoloyo Ver Mensaje
Bien resuelto.

Hay muchas formas de hacerlo, empezando por hacerlo desde la aplicación.
En esos casos lo que suele hacerse es que sólo se pueda guardar cuando se llenan los campos, y luego del primer click en el botón este se desactive hasta la próxima validación de datos.
Usar la base para evitar duplicidades exige dos cosas: 1) Validar los datos contra la base, 2) que la base sea diseñada de modo que esos datos no se dupliquen.
La primera parte es simple: Realizas la consulta con aquella combinación de datos que no se debe duplicar, y si existen ya, no se realiza la operación.
La segunda implica que debes determinar qué datos no se deben duplicar y con ellos crear un índice UNIQUE.

Ahora bien, para determinar el indice UNIQUE necesitas analizar la estructura de los datos y fijarte qué dato o conjunto de datos (que no sean la PK si esta es un auto_increment) no deben duplicarse y con ellos armar el índice UNIQUE.
  #6 (permalink)  
Antiguo 28/12/2010, 11:54
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: sENTENCIA PARA COMPARAR TABLAS

Cita:
Claro, tendría q hacer un cotejamiento de datos para evitar duplicidad, pero eso detendría la operacion entera, no?
No necesariamente. Una tabla de 60.000.000 de registros tarda menos de 0.25 segundos en encontrar una coincidencia, y menos aún si existen índices definidos sobre los campos implicados.
Cita:
Porque ambas tablas van a crecer, y la consulta de filtrado se hará de nuevo para ver nuevas coincidencias, entonces, al hacer el filtrado nuevamente, saldran las coincidencias antiguas y las nuevas....
Y habría q guardar sólo las nuevas....a menos q se chanque o sobre-escriba la data vieja; y la nueva sólo se adhiere...
No te compliques inutilmente antes de hacer las pruebas... Los sistemas de bases de datos fueron creados precisamente para responder este tipo de problemas muy rápidamente.
No pienses que cuando haces una consulta lo que hacen es barrer la tabla registro por registro. Nada que ver. Tienen diferentes algoritmos que trabajan internamente. Algunas veces la consulta puede ser optimizada de otros modos o por otras parametrizaciones. Ya los iras probando y aprendiendo.

No te ahogues en un vaso de agua.

Por ahora, analiza la estructura de datos y trata de visualizar qué combinación de datos no se repite entre dos registros jamás. Esa es una clave candidata y te permitirá crear un indice UNIQUE, el cual el DBMS (MySQL en esate caso) usará para aceptar o rechazar la inserción.
__________________
¿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 28/12/2010, 15:22
 
Fecha de Ingreso: diciembre-2010
Mensajes: 23
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: sENTENCIA PARA COMPARAR TABLAS

Chevere. Ya resolví este asunto. Gracias x la guía

Etiquetas: cotejar, tablas
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 08:49.