FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Como mejorar sentencia "not in"
Buenas tardes a todos y gracias por anticipado.
Tengo un problema de tiempos con una consulta. Tengo dos tablas, pacientes y estudios. Cuando se borran un nº determinado de estudios, quiero consultar cuales son los pacientes que "ya no tienen estudios", (ya que han sido borrados anteriormente). Esto lo hago asi: select paciente.id_paciente from paciente where paciente.id_paciente not in (select id_paciente from estudios) El problema es que es muy lento. He intentado hacer esto tb: select paciente.id_paciente from paciente, estudios where paciente.id_paciente <> estudios.id_paciente Pero no devuelve lo que espero, me devuelve registros que existen en paciente. Alguna ayudita. Muchas gracias. |
#2
|
||||
|
||||
__________________
Piensa siempre en positivo ! |
#3
|
||||
|
||||
Y si tu motor de base de datos no admite "left join" puedes ver si funciona así:
|
#4
|
|||
|
|||
Muchas gracias por ayudarme tan pronto.
Lo cierto es que uso Interbase y estoy intentando traducirlo con el Ib console, pero me falla algo... :S, select paciente.id_paciente,estudios.id_paciente as Tiene_Estudios from paciente left join paciente.id_paciente on estudios.id_paciente = paciente.id_paciente where tiene_estudios is null Estoy viendo si consigo resolverlo. De nuevo gracias Editado, Para comprender el error en ibconsole lo pongo todo en una linea seguido. El error me lo devuelve en left join paciente. (aqui) despues del punto. Me dice "Token unknown". linea 1 character 99. |
#5
|
||||
|
||||
__________________
Piensa siempre en positivo ! |
#6
|
|||
|
|||
Muchas gracias de nuevo por ayudarme, de veras, no quiero ser pesado.
Corregido el error, ahora me dice que la columna Tiene_estudios es desconocida. select paciente.id_paciente, estudios.id_paciente as Tiene_Estudios from paciente left join estudios on estudios.id_paciente = paciente.id_paciente where tiene_estudios is null Tambien he comprobado que interbase permite hacer el "as", por lo que ahora no se que mas probar. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Comentario "aplastante" contra los que atacan la "piratería" | Casimiro Notevi | La Taberna | 12 | 07-03-2010 14:03:02 |
Necesito llamar a métodos de clases "hija" desde su clase "padre" | Flecha | OOP | 17 | 20-04-2007 00:03:53 |
¿cuál es mejor: "close" o "application.terminate"? | unreal4u | Varios | 5 | 05-03-2007 11:01:19 |
porque no me reconoce los caracteres "*" ni "%" cuando filtro | mrmago | Conexión con bases de datos | 10 | 27-01-2006 04:21:16 |
|