Ver Mensaje Individual
  #1  
Antiguo 31-01-2006
erika.martinez erika.martinez is offline
Miembro
 
Registrado: may 2003
Ubicación: Buenos Aires - Argentina
Posts: 18
Reputación: 0
erika.martinez Va por buen camino
Select anidado

Hola ¿cómo andan? Espero que todo bien.
Estoy trabajando en el desarrollo de un software que busca genes en genomas de distintos organismos. Tengo dos tablas, una que se llama GenesOriginal, donde tengo almacenados los genes conocidos para el organismo que estoy estudiando, y otra que se llama GenesSoft donde tengo almacenados los genes que encuentra mi algoritmo.
Una vez que tengo cargadas las dos tablas, lo que quiero es hacer una comparación entre estas para saber que genes encontró mi algoritmo y que pertencen al organismo, cuales no, etc. Para esto uso un select anidado. La cuestión es que el resultado que obtengo no es el mismo si trabajo sobre una tabla o sobre otra, y a mi me parece que debería obtener lo mismo.

La sentencia que utilizo para trabajar sobre la tabla GenesOriginales es la siguiente:

Update GenesOriginal
Set Encontrado = True
where pkGenesOriginal in (Select pkGenesOriginal from GenesOriginal
where InicioGen in (Select InicioGen from GenesSoft)
or FinGen in (Select FinGen from GenesSoft))

donde Encontrado es una variable que inicialmente está seteada a False y cuyo valor cambia si algun gen de GenesSoft tiene el mismo inicio (InicioGen) o el mismo fin (FinGen) que un gen de la tabla GenesOriginal.

Después de esto ejecuto: Select count(pkGenesOriginal) from GenesOriginal where Encontrado = True, y obtengo, por ejemplo 467.

Ahora, la sentencia que utilizo para trabajar sobre la tabla GenesSoft es la siguiente:

Update GenesSoft
Set Encontrado = True
where pkGenesSoft in (Select pkGenesSoft from GenesSoft
where InicioGen in (Select InicioGen from GenesOriginal)
or FinGen in (Select FinGen from GenesOriginal))

Después de esto ejecuto: Select count(Soft) from GenesSoft where Encontrado = True, y obtengo, en este caso 462.

¿porqué resultados diferentes? ¿no debería obtener el mismo número?

Desde ya muchas gracias, saludos a todos

Erika
Responder Con Cita