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 20-06-2011
darkvid2010 darkvid2010 is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 6
Poder: 0
darkvid2010 Va por buen camino
Consulta de bases de datos relacionadas

Hola,

tengo el siguiente problema con esta consulta:
sqldieta.SQL.Add('SELECT * FROM datos_dieta, tabla_intolerancias WHERE identificador='+QuotedStr(elidentificador)+' AND tabla_intolerancia.alimento=datos_dieta.alimento ');

Me indica siempre que tabla_intolerancia.alimento no tiene un valor predeterminado, lo que hago es localizar por el identificador los datos del usuario ubicados en la tabla_intolerancia y luego quiero seleccionar de datos_dieta aquellos alimentos que son iguales a los de la tabla_intolerancia pues estos son los que deben figurar en la dieta ya que necesito poder manipular unicamente los alimentos que coincidan en ambas tablas.
Responder Con Cita
  #2  
Antiguo 20-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
porque no usas left join ?

Código SQL [-]
Select Tabla1.Campos, Tabla2.Campos
From Tabla1
Left join Tabla2 On Campostabla1igual=campotabla2igual

ejemplo si en ambas tablas existe el campo identificador

Código SQL [-]
Select Tabla1.Campos, Tabla2.Campos
From Tabla1
Left join Tabla2 On Tabla1.Identificador = Tabla2.Identficador
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 21-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
tengo el siguiente problema con esta consulta:
sqldieta.SQL.Add('SELECT * FROM datos_dieta, tabla_intolerancias WHERE identificador='+QuotedStr(elidentificador)+' AND tabla_intolerancia.alimento=datos_dieta.alimento ');
Hola.

Creo que tu consulta debería ser:
Código Delphi [-]
  sqldieta.SQL.Clear;
  sqldieta.SQL.Add('SELECT * FROM datos_dieta c1, tabla_intolerancias c2');
  sqldieta.SQL.Add('WHERE c1.identificador = :elidentificador AND ');// (*)
  sqldieta.SQL.Add('c1.alimento = c2.alimento');
  sqldieta.ParamByName('elidentificador').AsString:= elidentificador;
(*) c1.indentificador ó c2.identificador, de acuerdo a la tabla que pertenezca el campo.

O si preferis podés utilizar join tál como te sugiere oscarac.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 21-06-2011 a las 05:25:39.
Responder Con Cita
  #4  
Antiguo 21-06-2011
darkvid2010 darkvid2010 is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 6
Poder: 0
darkvid2010 Va por buen camino
Mil gracias, al final lo logre solucionar con el JOIN de esta manera:
sqldieta.SQL.Add('SELECT *'+
' FROM tabla_intolerancias LEFT JOIN datos_dieta ON'+
' tabla_intolerancias.alimento=datos_dieta.alimento where tabla_intolerancias.identificador='+QuotedStr(elidentificador));
sqldieta.Open;


El identificador es la llave principal de la primera tabla, por si alguien quiere saber como es el problema entero es lo siguiente:

tengo tablas: test, intolerancias y dieta

El usuario se realiza un test de intolerancia alimentaria y eso genera los datos de las tablas test y de intolerancia, y con eso podemos localizar dentro de la dieta los alimentos que no debe tomar posicionandonos en el identificador del usuario ( llave principal) y buscando en la dieta los alimentos a los que presenta intolerancia alimentaria.

Muchisimas gracias, Soys lo mas grande.
Responder Con Cita
  #5  
Antiguo 21-06-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
entonces esta solucionado?
__________________
Dulce Regalo que Satanas manda para mi.....
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
Consulta a dos bases de datos drykea SQL 13 18-04-2008 15:58:09
consulta a varias bases de datos carlos gonzalez Conexión con bases de datos 13 04-10-2007 19:51:41
consulta a tablas de bases de datos externas odin SQL 4 23-09-2004 17:07:27
Una Consulta De 2 Bases De Datos Diferentes edy_aca SQL 2 12-12-2003 11:24:49
Consulta entre bases de datos diferentes yanaysi Varios 1 28-05-2003 04:35:37


La franja horaria es GMT +2. Ahora son las 17:30:52.


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