Las dos consulta serían iguales solo en el caso de que los campos FinGen e InicioGen sean únicos. Si se puede dar la casualidad de que dos registros puedan tener el mismo FinGen o el mismo InicioGen las consultas no tendrían porque dar el mismo resultado.
Por ejemplo si tienes las siguiente tablas
GenesOriginal --> Registros
GEN FINGEN INICIOGEN
1 AA BB
2 AC DF
3 AF BB
GenesSoft --> Registros
GEN TINGEN INICIOGEN
1 AA BB
En este caso la consulta
Código SQL
[-]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))
Modificaria dos registros, por lo que el resultado de
Código SQL
[-]Select count(pkGenesOriginal) from GenesOriginal where Encontrado = True
Devolvería 2
Sim embargo la consulta
Código SQL
[-]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))
Modificaría un solo registro, por lo que al lanzar la consulta
Código SQL
[-]Select count(Soft) from GenesSoft where Encontrado = True
Obtendrías como resultado 1.
Espero haberme explicado y que te sirva de ayuda.
Un saúdo