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

Como saco los registros cuyos indices no coinciden en dos tablas??

Estas en el tema de Como saco los registros cuyos indices no coinciden en dos tablas?? en el foro de Bases de Datos General en Foros del Web. Hola, bueno para todos es muy comun que si se tienen dos tablas relacionadas entre ellas por el indice de una, se puede sacar un ...
  #1 (permalink)  
Antiguo 27/02/2003, 16:54
Avatar de Leonardo A. Sanchez  
Fecha de Ingreso: julio-2000
Ubicación: Mexico D.F.
Mensajes: 151
Antigüedad: 24 años, 4 meses
Puntos: 0
Como saco los registros cuyos indices no coinciden en dos tablas??

Hola, bueno para todos es muy comun que si se tienen dos tablas relacionadas entre ellas por el indice de una, se puede sacar un listado de los valores conjuntos basandode ese indice

select idtabla1, valortabla1, valortabla2
from tabla1, tabla2
where tabla1.idtabla1=tabla2.idtabla2

como se haria si lo que quiero es obtener todos los registros de la tabla 1 que no estan relacionados con la tabla 2??
__________________
En las manos de su manejador, la vida de Michael Jordan vale unos 20 millones, en las manos de Dios, cuanto crees que valdria tu vida? Entregasela y el hara de tu vida la mas valiosa del mundo entero.
  #2 (permalink)  
Antiguo 27/02/2003, 19:35
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 22 años, 10 meses
Puntos: 5
Bueno, antes que nada se necesita saber que BD es la que usas... pero si Yo asumiera que es MySQL... (o casi cualquier SQL)


SELECT * from tabla1
LEFT JOIN tabla2
ON tabla1.comunID=tabla2.comunID
WHERE tabla2.comunID is NULL


Esto te resultaría en un listado de todos los registros de tabla2 que no tienen coincidencia en tabla1


Espero haberte ayudado!!
__________________
Manoloweb
  #3 (permalink)  
Antiguo 14/05/2003, 16:54
Avatar de Leonardo A. Sanchez  
Fecha de Ingreso: julio-2000
Ubicación: Mexico D.F.
Mensajes: 151
Antigüedad: 24 años, 4 meses
Puntos: 0
Aun no me funciona; tratare de explicarme mejor a ver si alguien tiene mas coco que yo.

Tengo 3 tablas en Microsoft SQL Server

La primera Tabla es algo asi:

TablaOficionas

*IdOficina
*IdEdificio
*NombreOficina

TablaUsuarios

*IdUsuario
*NombreUsuario

TablaAsignaciones

*IdPermiso
*IdOficina
*IdUsuario

Y lo que hago es que si quiero que un usuario pueda accesar a la informacion de mas de una oficina, creo la respectiva relacion en esa tabla intermedia (TablaAsignaciones)

Ahora lo que quiero es un listado de las oficionas de un edificio en particular a las que no tiene asignado el usuario.

Me imagino que es con algo de JOIN, pero no le encuentro el derecho.
__________________
En las manos de su manejador, la vida de Michael Jordan vale unos 20 millones, en las manos de Dios, cuanto crees que valdria tu vida? Entregasela y el hara de tu vida la mas valiosa del mundo entero.
  #4 (permalink)  
Antiguo 14/05/2003, 17:15
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 11 meses
Puntos: 11
select a.*, b.* from TablaOficionas a,TablaUsuarios b where idoficina not in (select idoficina from TablaAsignaciones) and idusuario not in (select idUsuario from TablaAsignaciones)

intenta eso. :p
te dara todos los datos de las oficinas, junto ala descripcion de los usuarios que no la tienen.

saludos.
__________________
Jorge Mota
Blog
Gubiz estafa
  #5 (permalink)  
Antiguo 15/05/2003, 10:48
Avatar de Leonardo A. Sanchez  
Fecha de Ingreso: julio-2000
Ubicación: Mexico D.F.
Mensajes: 151
Antigüedad: 24 años, 4 meses
Puntos: 0
EUREKA!!

Bueno, me dio muy buenas ideas tu script SQL y lo arregle un poco para especificarle el usuario y empresa que estoy consultando. quedo asi:

SELECT TablaOficionas.IdOficina, TablaOficionas.NombreOficina FROM dbo.TablaOficinas WHERE (TablaOficinas.IdOficina NOT IN (SELECT TablaOficina.IdOficina
FROM dbo.TablaOficina, dbo.TablaAsignaciones
WHERE (TablaAsignaciones.IdOficina=TablaOficinas.IdOfici na) AND (TablaAsignaciones.IdUser='Parametro1'))) AND (TablaOficinas.IdEmpresa='Parametro2')

Que les parece?

De veras, Muchas Gracias
Hasta la proxima.
__________________
En las manos de su manejador, la vida de Michael Jordan vale unos 20 millones, en las manos de Dios, cuanto crees que valdria tu vida? Entregasela y el hara de tu vida la mas valiosa del mundo entero.
  #6 (permalink)  
Antiguo 16/05/2003, 09:37
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 11 meses
Puntos: 11
Cool man!

Esta bien.

Suerte.
__________________
Jorge Mota
Blog
Gubiz estafa
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 23:00.