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

como saber si no existe algunos registros

Estas en el tema de como saber si no existe algunos registros en el foro de Mysql en Foros del Web. Hola que tal tengo un problema . Tengo 2 tablas en MySQL se llaman: tbldocente que contiene 719 registros tblnombramiento que contiene 721 registros las ...
  #1 (permalink)  
Antiguo 02/05/2013, 14:33
 
Fecha de Ingreso: julio-2011
Ubicación: Peru
Mensajes: 92
Antigüedad: 12 años, 9 meses
Puntos: 1
como saber si no existe algunos registros

Hola que tal tengo un problema .
Tengo 2 tablas en MySQL se llaman:
tbldocente que contiene 719 registros
tblnombramiento que contiene 721 registros

las 2 tablas estan relacionadas por el campo " codDocente "

las 2 tablas deberian tener 719 registros pero como ven no es asi , como puedo ubicar esos 2 registros que me sobran mediante una consulta

Esperando su pronta ayuda
  #2 (permalink)  
Antiguo 02/05/2013, 14:56
 
Fecha de Ingreso: septiembre-2006
Mensajes: 139
Antigüedad: 17 años, 7 meses
Puntos: 14
Respuesta: como saber si no existe algunos registros

Prueba con las sentencias LEFT JOIN o RIGHT JOIN dependiendo de cómo quieras que sea la unión, si sólo tendrás en cuenta los que tengan relación con algún elemento de la tabla con la que haces la unión, o se evaluarán todos los registros de ambas tablas.

En tu caso sería, según puedo entender, un RIGHT JOIN tal que así:

Código:
select * from tbldocente right join tblnombramiento on tbldocente.codDocente=tblnombramiento.codDocente;
De todos modos si sólo te quieres quedar con esos dos registros, podrías evaluarlo mediante un criterio condicional que te arroje los nombramientos que no tengan correspondencia de codDocente en la tabla tblDocente.

Saludos.
Francisco J.

Última edición por geofran80; 02/05/2013 a las 15:01
  #3 (permalink)  
Antiguo 02/05/2013, 16:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: como saber si no existe algunos registros

Si los dos números de codDocente de la tabla tablnombramiento que buscas no están en la tabla tbldocente, valdría alguna consulta con LEFT JOIN, tal y como te propone geofran80, aunque tendrías que añadir el filtro sobre el NULL.
Algo así:
Código MySQL:
Ver original
  1. SELECT* FROM tblnombramiento tn
  2.     LEFT JOIN tbldocente td
  3.     INNER JOIN ON tn.codDocente = td.codDocente
  4.  WHERE td.codDocente IS NULL

Pero es que no sé si ese es el caso. Si aparecen repetidos necesitas hacer otra consulta para buscar los repetidos.
Código MySQL:
Ver original
  1.   codDocente,
  2.   COUNT(codDocente) Total
  3.  FROM tblnombramiento
  4.  GROUP BY codDocente
  5.  HAVING COUNT(codDocente) > 1

Eso te ayudará a encontrar los codDocente repetidos. Luego deberías buscarlos en la tabla para ver los datos y comprobar si hay algún error.

Por otra parte, piensa que un docente puede tener más de un nombramiento y eso no sería un error. Tal vez la relación entre docente y nombramientos no es uno a uno.
  #4 (permalink)  
Antiguo 03/05/2013, 04:46
Avatar de zalito12  
Fecha de Ingreso: noviembre-2011
Ubicación: Coruña, España
Mensajes: 430
Antigüedad: 12 años, 5 meses
Puntos: 67
Respuesta: como saber si no existe algunos registros

Yo creo que la forma más fácil sería:

Código SQL:
Ver original
  1. SELECT * FROM tblnombramiento WHERE codDocente NOT IN (SELECT codDocente FROM tbldocente);
__________________
Dicen que las personas piensan en su lengua materna, yo lo hago en PHP
  #5 (permalink)  
Antiguo 03/05/2013, 06:20
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: como saber si no existe algunos registros

Cita:
Iniciado por zalito12 Ver Mensaje
Yo creo que la forma más fácil sería:

Código SQL:
Ver original
  1. SELECT * FROM tblnombramiento WHERE codDocente NOT IN (SELECT codDocente FROM tbldocente);
Fácil... sí.
Eficiente... no, porque requiere leer completamente ambas tablas, en cambio usándolas en el FROM aplica los índices de las FK..
Mientras se pueda evitar ciertos filtrados en el WHERE es mejor, porque el WHERE no es optimizable por el parser, y el FROM si.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, registros, sql, tabla
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 16:08.