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

se puede hacer o es imposible?

Estas en el tema de se puede hacer o es imposible? en el foro de Bases de Datos General en Foros del Web. intentare ponerlo de forma grafica a ves si sale y se ve supongamos q tenemos: A B C 1 X X X 2 X X ...
  #1 (permalink)  
Antiguo 21/07/2004, 08:46
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
se puede hacer o es imposible?

intentare ponerlo de forma grafica
a ves si sale y se ve supongamos q tenemos:

A B C
1 X X X

2 X X

3 X X

donde x significa q existe un registro A1, b1, c1, a2, c2, a3, b3

pero no existen los registros b2, c3

es decir la tabla solo tiene 7 entradas de un total de 9 pobibles,

pues necesito hacer una consulta q me de los registros q no existen.

se puede hacer o es imposible?
  #2 (permalink)  
Antiguo 21/07/2004, 09:26
 
Fecha de Ingreso: agosto-2003
Mensajes: 448
Antigüedad: 21 años, 3 meses
Puntos: 1
Creo que tenés que hacerlo con stored procedures, usando tablas temporales
  #3 (permalink)  
Antiguo 21/07/2004, 11:45
Avatar de unoce  
Fecha de Ingreso: julio-2004
Mensajes: 9
Antigüedad: 20 años, 4 meses
Puntos: 0
Yo no lo debo haber entendido. Porque lo veo muy simple.
  #4 (permalink)  
Antiguo 21/07/2004, 11:58
Avatar de padrino  
Fecha de Ingreso: mayo-2004
Ubicación: Aguascalientes, Ags. la tierra de la gente buena
Mensajes: 161
Antigüedad: 20 años, 5 meses
Puntos: 0
???

Bueno la verdad no comprendo tu problema, el registro que no existe ponle un valor que represente para ti que no existe o simplemente null,

ejemplo tu espacio de respuestas son {a1,a2,a3,b1,b2,b3,c1,c2,c3}

ok pues lo que no este dentro de este espacio no existe, ejemplo x entonces cuando insertes en la tabla si selecciono a1,c1 en la columna de B inserta una X,


no se pero creeo que esto se implementa mejor en matrices que en tabla, oamplia tu pregunta para ver en que te podemos ayudar
__________________
The God Father
__________________________________________
No hay un error tan grande como el de no seguir adelante (:pensando:) William Blake
  #5 (permalink)  
Antiguo 22/07/2004, 02:40
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
realmente, como entendereis, la pregunta expuesta es una simplificación, pues no es una tabla 3 x 3 sino 3000 x 300 y puede crecer facilmente a 10000 x 500

de los cuales apenas el 1 por mil aparece como registro, por lo tanto introducir los que no existen es una locura.

La verdar es q es complicado, taanto que no se como explicarlo.

de momento estoy intentando algo con Union, Intersect, Except q puede darme esperanzas.
  #6 (permalink)  
Antiguo 22/07/2004, 03:34
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años, 5 meses
Puntos: 1
¿Has probado con un NOT EXIST?

Saludos!!
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #7 (permalink)  
Antiguo 22/07/2004, 04:06
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
creo q solo se aplica el NOT exist para creacion de tablas, no?
  #8 (permalink)  
Antiguo 22/07/2004, 04:12
Avatar de Phoncadiz  
Fecha de Ingreso: mayo-2004
Ubicación: Cádiz City
Mensajes: 232
Antigüedad: 20 años, 5 meses
Puntos: 1
NOT EXIST se aplica también para consultas.

saludos.
__________________
Tantas horas delante de una pantalla servirá para algo....
[Phoncadiz; mínimo 8 h. al día con el PC] :stress:
  #9 (permalink)  
Antiguo 22/07/2004, 04:41
 
Fecha de Ingreso: enero-2002
Mensajes: 1.438
Antigüedad: 22 años, 10 meses
Puntos: 0
podrias darme un sencillo ejemplo?

no encuentro en la documentacion Mysql
  #10 (permalink)  
Antiguo 22/07/2004, 06:04
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 21 años, 3 meses
Puntos: 2
Lo que quieres hacer puede ser fácil o complicado dependiendo de como montes el sistema.
Me explico: si las letras representan, por ejemplo, servicios prestados y las letras representan personas, sería fácil obtener lo que buscas, pues tendrías una tabla maestra con los servicios prestados y sólo tendrías que buscar las servicios que no prestan las personas (not exists, not in, ...).

Si lo haces más genérico, realmente lo que necesitarías son dos tablas maestras (una para las letras y otra para los números) y otra de relaciones existentes entre ambas (la existencia), vamos lo habitual.
Para obtener la no existencia tienes que cruzar las dos tablas y comprobar que no exista en la tabla de relaciones.
De todas formas, si el cruce es muy grande, puede resultar más rápida la consulta si guardas todos los datos en la tabla de relaciones.

Como ejemplo:
tabla1 (idtabla1)
tabla2 (idtabla2)
tabla_relaciones(idtabla1, idtabla2)

la consulta sería la siguiente

Código:
select * from tabla1 a, tabla2 b
where not exist (select * 
                         from tabla_relaciones c 
                        where c.idtabla1=a.idtabla1 
                           and c.idtabla2=b.idtabla2)
Un saludo y espero que te sirva de ayuda.

Última edición por Vice; 22/07/2004 a las 06:09
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 14:14.