Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-01-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Consulta con condicion distinta

Hola gente del foro, tengo una preguntita.

Utilizo Firebird 2.0. Tengo 2 tablas: AREA (ID:Integer y NOMBRE:String) y ESTRUCTURA (AREA:Integer).

Necesito una consulta que me devuelva todos los registros de la Tabla AREA, excluyendo aquellas area que están en la tabla ESTRUCTURA.

Tengo una idea,pero no me entrega lo que necesito.

Código SQL [-]
SELECT distinct A.nombre FROM area a
LEFT join estructura e on A.ID <> E.AREA

Ojala se le ocurra algo como solucionar esto.

Saludos
Responder Con Cita
  #2  
Antiguo 22-01-2010
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Una forma de hacerlo sería asi:

Código SQL [-]
SELECT DISTINCT A.nombre FROM area A
WHERE A.area NOT IN (SELECT E.area FROM estructura E)

Espero te sirva.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 22-01-2010
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Te lo respondo con ANSI SQL, no se si funciona tal cual en FB:

Código SQL [-]
SELECT NOMBRE 
FROM AREA A
WHERE NOT EXISTS (SELECT 1 FORM ESTRUCTURA E WHERE A.ID =E.AREA)

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 22-01-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Revisa la ayuda sobre SELECT..IN.
Posiblemente utilizando la negación obtengas lo que necesitas.

Código SQL [-]
USE pubs
SELECT pub_name
FROM publishers
WHERE pub_id in ('1389', '0736')

O algo como esto:

Código SQL [-]
Select * from Tabla1
where ID NOT in (Select ID FROM Tabla2)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 22-01-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Yo he encontrado que es más rápido un join:

Código SQL [-]
select * from area
left join estructura un estructura.area = area.id
where estructura.area is null

// Saludos
Responder Con Cita
  #6  
Antiguo 22-01-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.278
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por roman Ver Mensaje
Yo he encontrado que es más rápido un join
Cualquier cosa es más rápido que un SELECT..IN

Mejor esta.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 22-01-2010
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por Neftali Ver Mensaje
Cualquier cosa es más rápido que un SELECT..IN

Mejor esta.
De acuerdo, de hecho adoptaré esta forma.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como hacer una consulta sql con condicion fecha < 1 mes atras?? ManuelPerez Varios 6 07-02-2008 19:55:19
Componente con distinta apariencia al DBNavigator Jose Roman Varios 8 18-01-2008 20:53:52
Acceder carpeta distinta a la que estamos. papulo PHP 5 24-08-2007 09:41:20
Consulta que obtiene campos de una tabla u otra según condición Gabo SQL 10 20-08-2007 08:53:02
Impresión Distinta al Preview caramelillo Impresión 0 08-03-2007 00:04:45


La franja horaria es GMT +2. Ahora son las 06:26:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi